diff --git a/adl__pointer_8hpp_source.html b/adl__pointer_8hpp_source.html index 1a5aff9bd..d44f8f666 100644 --- a/adl__pointer_8hpp_source.html +++ b/adl__pointer_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/adl_pointer.hpp Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -95,14 +95,14 @@ $(function() {
38 
39 
40 #endif
- -
entt::adl_meta_pointer_like::dereference
static decltype(auto) dereference(const Type &value)
Uses the default ADL based lookup method to resolve the call.
Definition: adl_pointer.hpp:31
-
entt::adl_meta_pointer_like
Fake ADL based lookup function for meta pointer-like types.
Definition: adl_pointer.hpp:25
entt
EnTT default namespace.
Definition: algorithm.hpp:13
entt::dereference_meta_pointer_like
decltype(auto) dereference_meta_pointer_like(const Type &value)
ADL based lookup function for dereferencing meta pointer-like types.
Definition: adl_pointer.hpp:15
+
entt::adl_meta_pointer_like
Fake ADL based lookup function for meta pointer-like types.
Definition: adl_pointer.hpp:25
+
entt::adl_meta_pointer_like::dereference
static decltype(auto) dereference(const Type &value)
Uses the default ADL based lookup method to resolve the call.
Definition: adl_pointer.hpp:31
+ diff --git a/algorithm_8hpp_source.html b/algorithm_8hpp_source.html index 4f2133285..5fa0d65cf 100644 --- a/algorithm_8hpp_source.html +++ b/algorithm_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/algorithm.hpp Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -161,17 +161,17 @@ $(function() {
142 
143 
144 #endif
- -
entt::radix_sort::operator()
void operator()(It first, It last, Getter getter=Getter{}) const
Sorts the elements in a range.
Definition: algorithm.hpp:101
-
entt::std_sort::operator()
void operator()(It first, It last, Compare compare=Compare{}, Args &&... args) const
Sorts the elements in a range.
Definition: algorithm.hpp:39
-
entt::insertion_sort
Function object for performing insertion sort.
Definition: algorithm.hpp:46
-
entt::radix_sort
Function object for performing LSD radix sort.
Definition: algorithm.hpp:82
entt
EnTT default namespace.
Definition: algorithm.hpp:13
+
entt::insertion_sort
Function object for performing insertion sort.
Definition: algorithm.hpp:46
entt::insertion_sort::operator()
void operator()(It first, It last, Compare compare=Compare{}) const
Sorts the elements in a range.
Definition: algorithm.hpp:59
+
entt::radix_sort
Function object for performing LSD radix sort.
Definition: algorithm.hpp:82
+
entt::radix_sort::operator()
void operator()(It first, It last, Getter getter=Getter{}) const
Sorts the elements in a range.
Definition: algorithm.hpp:101
entt::std_sort
Function object to wrap std::sort in a class type.
Definition: algorithm.hpp:24
+
entt::std_sort::operator()
void operator()(It first, It last, Compare compare=Compare{}, Args &&... args) const
Sorts the elements in a range.
Definition: algorithm.hpp:39
+ diff --git a/android-ndk-r17_8hpp_source.html b/android-ndk-r17_8hpp_source.html index bd2cd7afa..780944cb6 100644 --- a/android-ndk-r17_8hpp_source.html +++ b/android-ndk-r17_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/platform/android-ndk-r17.hpp Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -147,7 +147,7 @@ $(function() { diff --git a/annotated.html b/annotated.html index 5d7f53a47..61d73b31c 100644 --- a/annotated.html +++ b/annotated.html @@ -3,7 +3,7 @@ - + EnTT: Class List @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -69,184 +69,193 @@ $(function() {
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 NenttEnTT default namespace
diff --git a/any_8hpp_source.html b/any_8hpp_source.html index 8764db47c..aa3c01ae9 100644 --- a/any_8hpp_source.html +++ b/any_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/any.hpp Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -77,10 +77,10 @@ $(function() {
5 #include <cstddef>
6 #include <functional>
7 #include <memory>
-
8 #include <new>
-
9 #include <type_traits>
-
10 #include <utility>
-
11 #include "../config/config.h"
+
8 #include <type_traits>
+
9 #include <utility>
+
10 #include "../config/config.h"
+
11 #include "../core/utility.hpp"
12 #include "fwd.hpp"
13 #include "type_info.hpp"
14 #include "type_traits.hpp"
@@ -91,329 +91,350 @@ $(function() {
19 
25 template<std::size_t Len, std::size_t Align>
26 class basic_any {
-
27  enum class operation { COPY, MOVE, DTOR, COMP, ADDR, CADDR, REF, CREF, TYPE };
-
28 
-
29  using storage_type = std::aligned_storage_t<Len + !Len, Align>;
-
30  using vtable_type = const void *(const operation, const basic_any &, const void *);
-
31 
-
32  template<typename Type>
-
33  static constexpr bool in_situ = Len && alignof(Type) <= alignof(storage_type) && sizeof(Type) <= sizeof(storage_type) && std::is_nothrow_move_constructible_v<Type>;
-
34 
-
35  template<typename Type>
-
36  [[nodiscard]] static bool compare(const void *lhs, const void *rhs) {
-
37  if constexpr(!std::is_function_v<Type> && is_equality_comparable_v<Type>) {
-
38  return *static_cast<const Type *>(lhs) == *static_cast<const Type *>(rhs);
-
39  } else {
-
40  return lhs == rhs;
-
41  }
-
42  }
-
43 
-
44  template<typename Type>
-
45  static Type & as(const void *to) {
-
46  return *const_cast<Type *>(static_cast<const Type *>(to));
+
27  enum class operation: std::uint8_t { COPY, MOVE, DTOR, COMP, ADDR, CADDR, TYPE };
+
28  enum class policy: std::uint8_t { OWNER, REF, CREF };
+
29 
+
30  using storage_type = std::aligned_storage_t<Len + !Len, Align>;
+
31  using vtable_type = const void *(const operation, const basic_any &, void *);
+
32 
+
33  template<typename Type>
+
34  static constexpr bool in_situ = Len && alignof(Type) <= alignof(storage_type) && sizeof(Type) <= sizeof(storage_type) && std::is_nothrow_move_constructible_v<Type>;
+
35 
+
36  template<typename Type>
+
37  [[nodiscard]] static constexpr policy type_to_policy() {
+
38  if constexpr(std::is_lvalue_reference_v<Type>) {
+
39  if constexpr(std::is_const_v<std::remove_reference_t<Type>>) {
+
40  return policy::CREF;
+
41  } else {
+
42  return policy::REF;
+
43  }
+
44  } else {
+
45  return policy::OWNER;
+
46  }
47  }
48 
49  template<typename Type>
-
50  static const void * basic_vtable([[maybe_unused]] const operation op, [[maybe_unused]] const basic_any &from, [[maybe_unused]] const void *to) {
-
51  if constexpr(!std::is_void_v<Type>) {
-
52  if constexpr(std::is_lvalue_reference_v<Type>) {
-
53  using base_type = std::remove_const_t<std::remove_reference_t<Type>>;
-
54 
-
55  switch(op) {
-
56  case operation::COPY:
-
57  if constexpr(std::is_copy_constructible_v<base_type>) {
-
58  as<basic_any>(to).template emplace<base_type>(*static_cast<const base_type *>(from.instance));
-
59  }
-
60  break;
-
61  case operation::MOVE:
-
62  as<basic_any>(to).instance = from.instance;
-
63  [[fallthrough]];
-
64  case operation::DTOR:
-
65  break;
-
66  case operation::COMP:
-
67  return compare<base_type>(from.instance, to) ? to : nullptr;
-
68  case operation::ADDR:
-
69  return std::is_const_v<std::remove_reference_t<Type>> ? nullptr : from.instance;
-
70  case operation::CADDR:
-
71  return from.instance;
-
72  case operation::REF:
-
73  as<basic_any>(to).instance = from.instance;
-
74  as<basic_any>(to).vtable = basic_vtable<Type>;
-
75  break;
-
76  case operation::CREF:
-
77  as<basic_any>(to).instance = from.instance;
-
78  as<basic_any>(to).vtable = basic_vtable<const base_type &>;
-
79  break;
-
80  case operation::TYPE:
-
81  as<type_info>(to) = type_id<base_type>();
-
82  break;
-
83  }
-
84  } else if constexpr(in_situ<Type>) {
-
85  #if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606L
-
86  auto *instance = const_cast<Type *>(std::launder(reinterpret_cast<const Type *>(&from.storage)));
-
87  #else
-
88  auto *instance = const_cast<Type *>(reinterpret_cast<const Type *>(&from.storage));
-
89  #endif
-
90 
-
91  switch(op) {
-
92  case operation::COPY:
-
93  if constexpr(std::is_copy_constructible_v<Type>) {
-
94  new (&as<basic_any>(to).storage) Type{std::as_const(*instance)};
-
95  as<basic_any>(to).vtable = from.vtable;
-
96  }
-
97  break;
-
98  case operation::MOVE:
-
99  new (&as<basic_any>(to).storage) Type{std::move(*instance)};
-
100  [[fallthrough]];
-
101  case operation::DTOR:
-
102  instance->~Type();
-
103  break;
-
104  case operation::COMP:
-
105  return compare<Type>(instance, to) ? to : nullptr;
-
106  case operation::ADDR:
-
107  case operation::CADDR:
-
108  return instance;
-
109  case operation::REF:
-
110  as<basic_any>(to).instance = instance;
-
111  as<basic_any>(to).vtable = basic_vtable<Type &>;
-
112  break;
-
113  case operation::CREF:
-
114  as<basic_any>(to).instance = instance;
-
115  as<basic_any>(to).vtable = basic_vtable<const Type &>;
-
116  break;
-
117  case operation::TYPE:
-
118  as<type_info>(to) = type_id<Type>();
-
119  break;
-
120  }
-
121  } else {
-
122  switch(op) {
-
123  case operation::COPY:
-
124  if constexpr(std::is_copy_constructible_v<Type>) {
-
125  as<basic_any>(to).instance = new Type{*static_cast<const Type *>(from.instance)};
-
126  as<basic_any>(to).vtable = from.vtable;
-
127  }
-
128  break;
-
129  case operation::MOVE:
-
130  as<basic_any>(to).instance = from.instance;
-
131  break;
-
132  case operation::DTOR:
-
133  if constexpr(std::is_array_v<Type>) {
-
134  delete[] static_cast<const Type *>(from.instance);
-
135  } else {
-
136  delete static_cast<const Type *>(from.instance);
-
137  }
-
138  break;
-
139  case operation::COMP:
-
140  return compare<Type>(from.instance, to) ? to : nullptr;
-
141  case operation::ADDR:
-
142  case operation::CADDR:
-
143  return from.instance;
-
144  case operation::REF:
-
145  as<basic_any>(to).instance = from.instance;
-
146  as<basic_any>(to).vtable = basic_vtable<Type &>;
-
147  break;
-
148  case operation::CREF:
-
149  as<basic_any>(to).instance = from.instance;
-
150  as<basic_any>(to).vtable = basic_vtable<const Type &>;
-
151  break;
-
152  case operation::TYPE:
-
153  as<type_info>(to) = type_id<Type>();
-
154  break;
-
155  }
-
156  }
-
157  }
-
158 
-
159  return nullptr;
-
160  }
-
161 
-
162 public:
-
164  basic_any() ENTT_NOEXCEPT
-
165  : basic_any{std::in_place_type<void>}
-
166  {}
-
167 
-
174  template<typename Type, typename... Args>
-
175  explicit basic_any(std::in_place_type_t<Type>, [[maybe_unused]] Args &&... args)
-
176  : instance{},
-
177  vtable{&basic_vtable<Type>}
-
178  {
-
179  if constexpr(!std::is_void_v<Type>) {
-
180  if constexpr(std::is_lvalue_reference_v<Type>) {
-
181  static_assert(sizeof...(Args) == 1u && (std::is_lvalue_reference_v<Args> && ...), "Invalid arguments");
-
182  instance = (std::addressof(args), ...);
-
183  } else if constexpr(in_situ<Type>) {
-
184  new (&storage) Type(std::forward<Args>(args)...);
-
185  } else {
-
186  instance = new Type(std::forward<Args>(args)...);
-
187  }
-
188  }
-
189  }
-
190 
-
196  template<typename Type>
-
197  basic_any(std::reference_wrapper<Type> value) ENTT_NOEXCEPT
-
198  : basic_any{std::in_place_type<Type &>, value.get()}
-
199  {}
-
200 
-
206  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
-
207  basic_any(Type &&value)
-
208  : basic_any{std::in_place_type<std::decay_t<Type>>, std::forward<Type>(value)}
-
209  {}
-
210 
-
215  basic_any(const basic_any &other)
-
216  : basic_any{}
-
217  {
-
218  other.vtable(operation::COPY, other, this);
-
219  }
-
220 
-
225  basic_any(basic_any &&other) ENTT_NOEXCEPT
-
226  : basic_any{}
-
227  {
-
228  other.vtable(operation::MOVE, other, this);
-
229  vtable = std::exchange(other.vtable, &basic_vtable<void>);
-
230  }
-
231 
-
233  ~basic_any() {
-
234  vtable(operation::DTOR, *this, nullptr);
-
235  }
-
236 
-
242  basic_any & operator=(basic_any other) {
-
243  swap(*this, other);
-
244  return *this;
-
245  }
-
246 
-
251  [[nodiscard]] type_info type() const ENTT_NOEXCEPT {
-
252  type_info info;
-
253  vtable(operation::TYPE, *this, &info);
-
254  return info;
-
255  }
-
256 
-
261  [[nodiscard]] const void * data() const ENTT_NOEXCEPT {
-
262  return vtable(operation::CADDR, *this, nullptr);
-
263  }
-
264 
-
266  [[nodiscard]] void * data() ENTT_NOEXCEPT {
-
267  return const_cast<void *>(vtable(operation::ADDR, *this, nullptr));
-
268  }
-
269 
-
276  template<typename Type, typename... Args>
-
277  void emplace(Args &&... args) {
-
278  *this = basic_any{std::in_place_type<Type>, std::forward<Args>(args)...};
+
50  [[nodiscard]] static bool compare(const void *lhs, const void *rhs) {
+
51  if constexpr(!std::is_function_v<Type> && is_equality_comparable_v<Type>) {
+
52  return *static_cast<const Type *>(lhs) == *static_cast<const Type *>(rhs);
+
53  } else {
+
54  return lhs == rhs;
+
55  }
+
56  }
+
57 
+
58  template<typename Type>
+
59  static const void * basic_vtable([[maybe_unused]] const operation op, [[maybe_unused]] const basic_any &from, [[maybe_unused]] void *to) {
+
60  static_assert(std::is_same_v<std::remove_reference_t<std::remove_const_t<Type>>, Type>, "Invalid type");
+
61 
+
62  if constexpr(!std::is_void_v<Type>) {
+
63  const Type *instance = (in_situ<Type> && from.mode == policy::OWNER)
+
64  ? ENTT_LAUNDER(reinterpret_cast<const Type *>(&from.storage))
+
65  : static_cast<const Type *>(from.instance);
+
66 
+
67  switch(op) {
+
68  case operation::COPY:
+
69  if constexpr(std::is_copy_constructible_v<Type>) {
+
70  static_cast<basic_any *>(to)->emplace<Type>(*instance);
+
71  }
+
72  break;
+
73  case operation::MOVE:
+
74  if constexpr(in_situ<Type>) {
+
75  if(from.mode == policy::OWNER) {
+
76  return new (&static_cast<basic_any *>(to)->storage) Type{std::move(*const_cast<Type *>(instance))};
+
77  }
+
78  }
+
79 
+
80  return (static_cast<basic_any *>(to)->instance = std::exchange(const_cast<basic_any &>(from).instance, nullptr));
+
81  case operation::DTOR:
+
82  if(from.mode == policy::OWNER) {
+
83  if constexpr(in_situ<Type>) {
+
84  instance->~Type();
+
85  } else if constexpr(std::is_array_v<Type>) {
+
86  delete[] instance;
+
87  } else {
+
88  delete instance;
+
89  }
+
90  }
+
91  break;
+
92  case operation::COMP:
+
93  return compare<Type>(instance, (*static_cast<const basic_any **>(to))->data()) ? to : nullptr;
+
94  case operation::ADDR:
+
95  if(from.mode == policy::CREF) {
+
96  return nullptr;
+
97  }
+
98  [[fallthrough]];
+
99  case operation::CADDR:
+
100  return instance;
+
101  case operation::TYPE:
+
102  *static_cast<type_info *>(to) = type_id<Type>();
+
103  break;
+
104  }
+
105  }
+
106 
+
107  return nullptr;
+
108  }
+
109 
+
110  template<typename Type, typename... Args>
+
111  void initialize([[maybe_unused]] Args &&... args) {
+
112  if constexpr(!std::is_void_v<Type>) {
+
113  if constexpr(std::is_lvalue_reference_v<Type>) {
+
114  static_assert(sizeof...(Args) == 1u && (std::is_lvalue_reference_v<Args> && ...), "Invalid arguments");
+
115  instance = (std::addressof(args), ...);
+
116  } else if constexpr(in_situ<Type>) {
+
117  if constexpr(sizeof...(Args) != 0u && std::is_aggregate_v<Type>) {
+
118  new (&storage) Type{std::forward<Args>(args)...};
+
119  } else {
+
120  new (&storage) Type(std::forward<Args>(args)...);
+
121  }
+
122  } else {
+
123  if constexpr(sizeof...(Args) != 0u && std::is_aggregate_v<Type>) {
+
124  instance = new Type{std::forward<Args>(args)...};
+
125  } else {
+
126  instance = new Type(std::forward<Args>(args)...);
+
127  }
+
128  }
+
129  }
+
130  }
+
131 
+
132  basic_any(const basic_any &other, const policy pol) ENTT_NOEXCEPT
+
133  : instance{other.data()},
+
134  vtable{other.vtable},
+
135  mode{pol}
+
136  {}
+
137 
+
138 public:
+
140  static constexpr auto length = Len;
+
142  static constexpr auto alignment = Align;
+
143 
+
145  basic_any() ENTT_NOEXCEPT
+
146  : instance{},
+
147  vtable{&basic_vtable<void>},
+
148  mode{policy::OWNER}
+
149  {}
+
150 
+
157  template<typename Type, typename... Args>
+
158  explicit basic_any(std::in_place_type_t<Type>, Args &&... args)
+
159  : instance{},
+
160  vtable{&basic_vtable<std::remove_const_t<std::remove_reference_t<Type>>>},
+
161  mode{type_to_policy<Type>()}
+
162  {
+
163  initialize<Type>(std::forward<Args>(args)...);
+
164  }
+
165 
+
171  template<typename Type>
+
172  basic_any(std::reference_wrapper<Type> value) ENTT_NOEXCEPT
+
173  : basic_any{}
+
174  {
+
175  // invokes deprecated assignment operator (and avoids issues with vs2017)
+
176  *this = value;
+
177  }
+
178 
+
184  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
+
185  basic_any(Type &&value)
+
186  : instance{},
+
187  vtable{&basic_vtable<std::decay_t<Type>>},
+
188  mode{policy::OWNER}
+
189  {
+
190  initialize<std::decay_t<Type>>(std::forward<Type>(value));
+
191  }
+
192 
+
197  basic_any(const basic_any &other)
+
198  : instance{},
+
199  vtable{&basic_vtable<void>},
+
200  mode{policy::OWNER}
+
201  {
+
202  other.vtable(operation::COPY, other, this);
+
203  }
+
204 
+
209  basic_any(basic_any &&other) ENTT_NOEXCEPT
+
210  : instance{},
+
211  vtable{other.vtable},
+
212  mode{other.mode}
+
213  {
+
214  vtable(operation::MOVE, other, this);
+
215  }
+
216 
+
218  ~basic_any() {
+
219  vtable(operation::DTOR, *this, nullptr);
+
220  }
+
221 
+
227  basic_any & operator=(const basic_any &other) {
+
228  reset();
+
229  other.vtable(operation::COPY, other, this);
+
230  return *this;
+
231  }
+
232 
+
238  basic_any & operator=(basic_any &&other) ENTT_NOEXCEPT {
+
239  std::exchange(vtable, other.vtable)(operation::DTOR, *this, nullptr);
+
240  other.vtable(operation::MOVE, other, this);
+
241  mode = other.mode;
+
242  return *this;
+
243  }
+
244 
+
251  template<typename Type>
+
252  [[deprecated("Use std::in_place_type<T &>, entt::make_any<T &>, emplace<Type &> or forward_as_any instead")]]
+
253  basic_any & operator=(std::reference_wrapper<Type> value) ENTT_NOEXCEPT {
+
254  emplace<Type &>(value.get());
+
255  return *this;
+
256  }
+
257 
+
264  template<typename Type>
+
265  std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>, basic_any &>
+
266  operator=(Type &&value) {
+
267  emplace<std::decay_t<Type>>(std::forward<Type>(value));
+
268  return *this;
+
269  }
+
270 
+
275  [[nodiscard]] type_info type() const ENTT_NOEXCEPT {
+
276  type_info info{};
+
277  vtable(operation::TYPE, *this, &info);
+
278  return info;
279  }
280 
-
282  void reset() {
-
283  *this = basic_any{};
-
284  }
-
285 
-
290  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
-
291  return !(vtable(operation::CADDR, *this, nullptr) == nullptr);
+
285  [[nodiscard]] const void * data() const ENTT_NOEXCEPT {
+
286  return vtable(operation::CADDR, *this, nullptr);
+
287  }
+
288 
+
290  [[nodiscard]] void * data() ENTT_NOEXCEPT {
+
291  return const_cast<void *>(vtable(operation::ADDR, *this, nullptr));
292  }
293 
-
299  bool operator==(const basic_any &other) const ENTT_NOEXCEPT {
-
300  return type() == other.type() && (vtable(operation::COMP, *this, other.data()) == other.data());
-
301  }
-
302 
-
308  friend void swap(basic_any &lhs, basic_any &rhs) {
-
309  basic_any tmp{};
-
310  lhs.vtable(operation::MOVE, lhs, &tmp);
-
311  rhs.vtable(operation::MOVE, rhs, &lhs);
-
312  lhs.vtable(operation::MOVE, tmp, &rhs);
-
313  std::swap(lhs.vtable, rhs.vtable);
-
314  }
-
315 
-
320  [[nodiscard]] basic_any as_ref() ENTT_NOEXCEPT {
-
321  basic_any ref{};
-
322  vtable(operation::REF, *this, &ref);
-
323  return ref;
-
324  }
-
325 
-
327  [[nodiscard]] basic_any as_ref() const ENTT_NOEXCEPT {
-
328  basic_any ref{};
-
329  vtable(operation::CREF, *this, &ref);
-
330  return ref;
-
331  }
-
332 
-
333 private:
-
334  union { const void *instance; storage_type storage; };
-
335  vtable_type *vtable;
-
336 };
-
337 
+
300  template<typename Type, typename... Args>
+
301  void emplace(Args &&... args) {
+
302  std::exchange(vtable, &basic_vtable<std::remove_const_t<std::remove_reference_t<Type>>>)(operation::DTOR, *this, nullptr);
+
303  mode = type_to_policy<Type>();
+
304  initialize<Type>(std::forward<Args>(args)...);
+
305  }
+
306 
+
308  void reset() {
+
309  std::exchange(vtable, &basic_vtable<void>)(operation::DTOR, *this, nullptr);
+
310  mode = policy::OWNER;
+
311  }
+
312 
+
317  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
+
318  return !(vtable(operation::CADDR, *this, nullptr) == nullptr);
+
319  }
+
320 
+
326  bool operator==(const basic_any &other) const ENTT_NOEXCEPT {
+
327  const basic_any *trampoline = &other;
+
328  return type() == other.type() && (vtable(operation::COMP, *this, &trampoline) || !other.data());
+
329  }
+
330 
+
335  [[nodiscard]] basic_any as_ref() ENTT_NOEXCEPT {
+
336  return basic_any{*this, (mode == policy::CREF ? policy::CREF : policy::REF)};
+
337  }
338 
-
347 template<std::size_t Len, std::size_t Align>
-
348 [[nodiscard]] inline bool operator!=(const basic_any<Len, Align> &lhs, const basic_any<Len, Align> &rhs) ENTT_NOEXCEPT {
-
349  return !(lhs == rhs);
-
350 }
+
340  [[nodiscard]] basic_any as_ref() const ENTT_NOEXCEPT {
+
341  return basic_any{*this, policy::CREF};
+
342  }
+
343 
+
348  [[nodiscard]] bool owner() const ENTT_NOEXCEPT {
+
349  return (mode == policy::OWNER);
+
350  }
351 
-
352 
-
361 template<typename Type, std::size_t Len, std::size_t Align>
-
362 Type any_cast(const basic_any<Len, Align> &data) ENTT_NOEXCEPT {
-
363  const auto * const instance = any_cast<std::remove_reference_t<Type>>(&data);
-
364  ENTT_ASSERT(instance);
-
365  return static_cast<Type>(*instance);
-
366 }
-
367 
-
368 
-
370 template<typename Type, std::size_t Len, std::size_t Align>
-
371 Type any_cast(basic_any<Len, Align> &data) ENTT_NOEXCEPT {
-
372  // forces const on non-reference types to make them work also with wrappers for const references
-
373  auto * const instance = any_cast<std::conditional_t<std::is_reference_v<Type>, std::remove_reference_t<Type>, const Type>>(&data);
-
374  ENTT_ASSERT(instance);
-
375  return static_cast<Type>(*instance);
-
376 }
-
377 
-
378 
-
380 template<typename Type, std::size_t Len, std::size_t Align>
-
381 Type any_cast(basic_any<Len, Align> &&data) ENTT_NOEXCEPT {
-
382  // forces const on non-reference types to make them work also with wrappers for const references
-
383  auto * const instance = any_cast<std::conditional_t<std::is_reference_v<Type>, std::remove_reference_t<Type>, const Type>>(&data);
-
384  ENTT_ASSERT(instance);
-
385  return static_cast<Type>(std::move(*instance));
+
352 private:
+
353  union { const void *instance; storage_type storage; };
+
354  vtable_type *vtable;
+
355  policy mode;
+
356 };
+
357 
+
358 
+
367 template<std::size_t Len, std::size_t Align>
+
368 [[nodiscard]] inline bool operator!=(const basic_any<Len, Align> &lhs, const basic_any<Len, Align> &rhs) ENTT_NOEXCEPT {
+
369  return !(lhs == rhs);
+
370 }
+
371 
+
372 
+
381 template<typename Type, std::size_t Len, std::size_t Align>
+
382 Type any_cast(const basic_any<Len, Align> &data) ENTT_NOEXCEPT {
+
383  const auto * const instance = any_cast<std::remove_reference_t<Type>>(&data);
+
384  ENTT_ASSERT(instance, "Invalid instance");
+
385  return static_cast<Type>(*instance);
386 }
387 
388 
390 template<typename Type, std::size_t Len, std::size_t Align>
-
391 const Type * any_cast(const basic_any<Len, Align> *data) ENTT_NOEXCEPT {
-
392  return (data->type() == type_id<Type>() ? static_cast<const Type *>(data->data()) : nullptr);
-
393 }
-
394 
-
395 
-
397 template<typename Type, std::size_t Len, std::size_t Align>
-
398 Type * any_cast(basic_any<Len, Align> *data) ENTT_NOEXCEPT {
-
399  // last attempt to make wrappers for const references return their values
-
400  return (data->type() == type_id<Type>() ? static_cast<Type *>(static_cast<constness_as_t<basic_any<Len, Align>, Type> *>(data)->data()) : nullptr);
-
401 }
-
402 
-
403 
-
404 }
-
405 
-
406 
-
407 #endif
- -
entt::basic_any::basic_any
basic_any(const basic_any &other)
Copy constructor.
Definition: any.hpp:215
-
entt::any_cast
Type any_cast(const basic_any< Len, Align > &data) noexcept
Performs type-safe access to the contained object.
Definition: any.hpp:362
-
entt::basic_any::type
type_info type() const noexcept
Returns the type of the contained object.
Definition: any.hpp:251
-
entt::basic_any::as_ref
basic_any as_ref() noexcept
Aliasing constructor.
Definition: any.hpp:320
-
entt::basic_any::data
void * data() noexcept
Returns an opaque pointer to the contained instance.
Definition: any.hpp:266
-
entt::basic_any::swap
friend void swap(basic_any &lhs, basic_any &rhs)
Swaps two any objects.
Definition: any.hpp:308
-
entt::basic_storage
Basic storage implementation.
Definition: storage.hpp:52
-
entt::basic_any::basic_any
basic_any() noexcept
Default constructor.
Definition: any.hpp:164
-
entt::basic_any::basic_any
basic_any(std::reference_wrapper< Type > value) noexcept
Constructs an any that holds an unmanaged object.
Definition: any.hpp:197
-
entt::basic_any::basic_any
basic_any(basic_any &&other) noexcept
Move constructor.
Definition: any.hpp:225
-
entt
EnTT default namespace.
Definition: algorithm.hpp:13
-
entt::basic_any::emplace
void emplace(Args &&... args)
Replaces the contained object by creating a new instance directly.
Definition: any.hpp:277
-
entt::basic_any::data
const void * data() const noexcept
Returns an opaque pointer to the contained instance.
Definition: any.hpp:261
-
entt::operator!=
bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
Checks if two wrappers differ in their content.
Definition: any.hpp:348
-
entt::basic_any::basic_any
basic_any(std::in_place_type_t< Type >, [[maybe_unused]] Args &&... args)
Constructs an any by directly initializing the new object.
Definition: any.hpp:175
-
entt::basic_any::operator==
bool operator==(const basic_any &other) const noexcept
Checks if two wrappers differ in their content.
Definition: any.hpp:299
-
entt::type_info
Implementation specific information about a type.
Definition: type_info.hpp:150
-
entt::basic_any::basic_any
basic_any(Type &&value)
Constructs an any from a given value.
Definition: any.hpp:207
-
entt::basic_any::reset
void reset()
Destroys contained object.
Definition: any.hpp:282
-
entt::basic_any::operator=
basic_any & operator=(basic_any other)
Assignment operator.
Definition: any.hpp:242
-
entt::basic_any::as_ref
basic_any as_ref() const noexcept
Aliasing constructor.
Definition: any.hpp:327
-
entt::constness_as_t
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
Definition: type_traits.hpp:632
+
391 Type any_cast(basic_any<Len, Align> &data) ENTT_NOEXCEPT {
+
392  // forces const on non-reference types to make them work also with wrappers for const references
+
393  auto * const instance = any_cast<std::remove_reference_t<const Type>>(&data);
+
394  ENTT_ASSERT(instance, "Invalid instance");
+
395  return static_cast<Type>(*instance);
+
396 }
+
397 
+
398 
+
400 template<typename Type, std::size_t Len, std::size_t Align>
+
401 Type any_cast(basic_any<Len, Align> &&data) ENTT_NOEXCEPT {
+
402  // forces const on non-reference types to make them work also with wrappers for const references
+
403  auto * const instance = any_cast<std::remove_reference_t<const Type>>(&data);
+
404  ENTT_ASSERT(instance, "Invalid instance");
+
405  return static_cast<Type>(std::move(*instance));
+
406 }
+
407 
+
408 
+
410 template<typename Type, std::size_t Len, std::size_t Align>
+
411 const Type * any_cast(const basic_any<Len, Align> *data) ENTT_NOEXCEPT {
+
412  return (data->type() == type_id<Type>() ? static_cast<const Type *>(data->data()) : nullptr);
+
413 }
+
414 
+
415 
+
417 template<typename Type, std::size_t Len, std::size_t Align>
+
418 Type * any_cast(basic_any<Len, Align> *data) ENTT_NOEXCEPT {
+
419  // last attempt to make wrappers for const references return their values
+
420  return (data->type() == type_id<Type>() ? static_cast<Type *>(static_cast<constness_as_t<basic_any<Len, Align>, Type> *>(data)->data()) : nullptr);
+
421 }
+
422 
+
423 
+
433 template<typename Type, std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
+
434 basic_any<Len, Align> make_any(Args &&... args) {
+
435  return basic_any<Len, Align>{std::in_place_type<Type>, std::forward<Args>(args)...};
+
436 }
+
437 
+
438 
+
447 template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type>
+
448 basic_any<Len, Align> forward_as_any(Type &&value) {
+
449  return basic_any<Len, Align>{std::in_place_type<std::conditional_t<std::is_rvalue_reference_v<Type>, std::decay_t<Type>, Type>>, std::forward<Type>(value)};
+
450 }
+
451 
+
452 
+
453 }
+
454 
+
455 
+
456 #endif
entt::basic_any
A SBO friendly, type-safe container for single values of any type.
Definition: any.hpp:26
-
entt::basic_any::~basic_any
~basic_any()
Frees the internal storage, whatever it means.
Definition: any.hpp:233
+
entt::basic_any::reset
void reset()
Destroys contained object.
Definition: any.hpp:308
+
entt::basic_any::data
const void * data() const
Returns an opaque pointer to the contained instance.
Definition: any.hpp:285
+
entt::basic_any::operator=
basic_any & operator=(const basic_any &other)
Copy assignment operator.
Definition: any.hpp:227
+
entt::basic_any::data
void * data()
Returns an opaque pointer to the contained instance.
Definition: any.hpp:290
+
entt::basic_any::basic_any
basic_any(const basic_any &other)
Copy constructor.
Definition: any.hpp:197
+
entt::basic_any::basic_any
basic_any(std::in_place_type_t< Type >, Args &&... args)
Constructs a wrapper by directly initializing the new object.
Definition: any.hpp:158
+
entt::basic_any::emplace
void emplace(Args &&... args)
Replaces the contained object by creating a new instance directly.
Definition: any.hpp:301
+
entt::basic_any::as_ref
basic_any as_ref() const
Aliasing constructor.
Definition: any.hpp:340
+
entt::basic_any::operator=
std::enable_if_t<!std::is_same_v< std::decay_t< Type >, basic_any >, basic_any & > operator=(Type &&value)
Value assignment operator.
Definition: any.hpp:266
+
entt::basic_any::length
static constexpr auto length
Size of the internal storage.
Definition: any.hpp:140
+
entt::basic_any::as_ref
basic_any as_ref()
Aliasing constructor.
Definition: any.hpp:335
+
entt::basic_any::alignment
static constexpr auto alignment
Alignment requirement.
Definition: any.hpp:142
+
entt::basic_any::type
type_info type() const
Returns the type of the contained object.
Definition: any.hpp:275
+
entt::basic_any::basic_any
basic_any()
Default constructor.
Definition: any.hpp:145
+
entt::basic_any::~basic_any
~basic_any()
Frees the internal storage, whatever it means.
Definition: any.hpp:218
+
entt::basic_any::operator=
basic_any & operator=(basic_any &&other)
Move assignment operator.
Definition: any.hpp:238
+
entt::basic_any::basic_any
basic_any(basic_any &&other)
Move constructor.
Definition: any.hpp:209
+
entt::basic_any::operator==
bool operator==(const basic_any &other) const
Checks if two wrappers differ in their content.
Definition: any.hpp:326
+
entt::basic_any::owner
bool owner() const
Returns true if a wrapper owns its object, false otherwise.
Definition: any.hpp:348
+
entt::basic_any::basic_any
basic_any(std::reference_wrapper< Type > value)
Constructs a wrapper that holds an unmanaged object.
Definition: any.hpp:172
+
entt::basic_any::operator=
basic_any & operator=(std::reference_wrapper< Type > value)
Value assignment operator.
Definition: any.hpp:253
+
entt::basic_any::basic_any
basic_any(Type &&value)
Constructs a wrapper from a given value.
Definition: any.hpp:185
+
entt::type_info
Implementation specific information about a type.
Definition: type_info.hpp:150
+
entt
EnTT default namespace.
Definition: algorithm.hpp:13
+
entt::any_cast
Type any_cast(const basic_any< Len, Align > &data)
Performs type-safe access to the contained object.
Definition: any.hpp:382
+
entt::constness_as_t
typename constness_as< To, From >::type constness_as_t
Alias template to facilitate the transcription of the constness.
Definition: type_traits.hpp:653
+
entt::forward_as_any
basic_any< Len, Align > forward_as_any(Type &&value)
Forwards its argument and avoids copies for lvalue references.
Definition: any.hpp:448
+
entt::make_any
basic_any< Len, Align > make_any(Args &&... args)
Constructs a wrapper from a given type, passing it all arguments.
Definition: any.hpp:434
+
entt::operator!=
bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
Checks if two wrappers differ in their content.
Definition: any.hpp:368
+
entt::basic_storage
Storage implementation dispatcher.
Definition: storage.hpp:1006
+ diff --git a/attribute_8h_source.html b/attribute_8h_source.html index 65ee17711..3c2334676 100644 --- a/attribute_8h_source.html +++ b/attribute_8h_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/attribute.h Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -80,9 +80,9 @@ $(function() {
8 # define ENTT_IMPORT __declspec(dllimport)
9 # define ENTT_HIDDEN
10 # elif defined __GNUC__ && __GNUC__ >= 4
-
11 # define ENTT_EXPORT __attribute__((visibility("default")))
-
12 # define ENTT_IMPORT __attribute__((visibility("default")))
-
13 # define ENTT_HIDDEN __attribute__((visibility("hidden")))
+
11 # define ENTT_EXPORT __attribute__((visibility("default")))
+
12 # define ENTT_IMPORT __attribute__((visibility("default")))
+
13 # define ENTT_HIDDEN __attribute__((visibility("hidden")))
14 # else /* Unsupported compiler */
15 # define ENTT_EXPORT
16 # define ENTT_IMPORT
@@ -106,7 +106,7 @@ $(function() { diff --git a/cache_8hpp_source.html b/cache_8hpp_source.html index 68827ccbd..de42931ab 100644 --- a/cache_8hpp_source.html +++ b/cache_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/resource/cache.hpp Source File @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -98,113 +98,110 @@ $(function() {
40 
42  resource_cache & operator=(resource_cache &&) = default;
43 
-
48  [[nodiscard]] size_type size() const ENTT_NOEXCEPT {
+
48  [[nodiscard]] size_type size() const ENTT_NOEXCEPT {
49  return resources.size();
50  }
51 
-
56  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
+
56  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
57  return resources.empty();
58  }
59 
-
66  void clear() ENTT_NOEXCEPT {
+
66  void clear() ENTT_NOEXCEPT {
67  resources.clear();
68  }
69 
92  template<typename Loader, typename... Args>
-
93  resource_handle<Resource> load(const id_type id, Args &&... args) {
-
94  static_assert(std::is_base_of_v<resource_loader<Loader, Resource>, Loader>, "Invalid loader type");
-
95 
-
96  if(auto it = resources.find(id); it == resources.cend()) {
-
97  if(auto handle = temp<Loader>(std::forward<Args>(args)...); handle) {
-
98  return (resources[id] = std::move(handle));
-
99  }
-
100  } else {
-
101  return it->second;
-
102  }
-
103 
-
104  return {};
-
105  }
-
106 
-
130  template<typename Loader, typename... Args>
-
131  resource_handle<Resource> reload(const id_type id, Args &&... args) {
-
132  return (discard(id), load<Loader>(id, std::forward<Args>(args)...));
-
133  }
-
134 
-
147  template<typename Loader, typename... Args>
-
148  [[nodiscard]] resource_handle<Resource> temp(Args &&... args) const {
-
149  return Loader{}.get(std::forward<Args>(args)...);
-
150  }
-
151 
-
165  [[nodiscard]] resource_handle<Resource> handle(const id_type id) const {
-
166  if(auto it = resources.find(id); it != resources.cend()) {
-
167  return it->second;
-
168  }
-
169 
-
170  return {};
-
171  }
-
172 
-
178  [[nodiscard]] bool contains(const id_type id) const {
-
179  return (resources.find(id) != resources.cend());
-
180  }
-
181 
-
190  void discard(const id_type id) {
-
191  if(auto it = resources.find(id); it != resources.end()) {
-
192  resources.erase(it);
-
193  }
-
194  }
-
195 
-
213  template <typename Func>
-
214  void each(Func func) const {
-
215  auto begin = resources.begin();
-
216  auto end = resources.end();
-
217 
-
218  while(begin != end) {
-
219  auto curr = begin++;
-
220 
-
221  if constexpr(std::is_invocable_v<Func, id_type>) {
-
222  func(curr->first);
-
223  } else if constexpr(std::is_invocable_v<Func, resource_handle<Resource>>) {
-
224  func(curr->second);
-
225  } else {
-
226  func(curr->first, curr->second);
-
227  }
-
228  }
-
229  }
-
230 
-
231 private:
-
232  std::unordered_map<id_type, resource_handle<Resource>> resources;
-
233 };
-
234 
+
93  resource_handle<Resource> load(const id_type id, Args &&... args) {
+
94  if(auto it = resources.find(id); it == resources.cend()) {
+
95  if(auto handle = temp<Loader>(std::forward<Args>(args)...); handle) {
+
96  return (resources[id] = std::move(handle));
+
97  }
+
98  } else {
+
99  return it->second;
+
100  }
+
101 
+
102  return {};
+
103  }
+
104 
+
128  template<typename Loader, typename... Args>
+
129  resource_handle<Resource> reload(const id_type id, Args &&... args) {
+
130  return (discard(id), load<Loader>(id, std::forward<Args>(args)...));
+
131  }
+
132 
+
145  template<typename Loader, typename... Args>
+
146  [[nodiscard]] resource_handle<Resource> temp(Args &&... args) const {
+
147  return Loader{}.get(std::forward<Args>(args)...);
+
148  }
+
149 
+
163  [[nodiscard]] resource_handle<Resource> handle(const id_type id) const {
+
164  if(auto it = resources.find(id); it != resources.cend()) {
+
165  return it->second;
+
166  }
+
167 
+
168  return {};
+
169  }
+
170 
+
176  [[nodiscard]] bool contains(const id_type id) const {
+
177  return (resources.find(id) != resources.cend());
+
178  }
+
179 
+
188  void discard(const id_type id) {
+
189  if(auto it = resources.find(id); it != resources.end()) {
+
190  resources.erase(it);
+
191  }
+
192  }
+
193 
+
211  template <typename Func>
+
212  void each(Func func) const {
+
213  auto begin = resources.begin();
+
214  auto end = resources.end();
+
215 
+
216  while(begin != end) {
+
217  auto curr = begin++;
+
218 
+
219  if constexpr(std::is_invocable_v<Func, id_type>) {
+
220  func(curr->first);
+
221  } else if constexpr(std::is_invocable_v<Func, resource_handle<Resource>>) {
+
222  func(curr->second);
+
223  } else {
+
224  func(curr->first, curr->second);
+
225  }
+
226  }
+
227  }
+
228 
+
229 private:
+
230  std::unordered_map<id_type, resource_handle<Resource>> resources;
+
231 };
+
232 
+
233 
+
234 }
235 
-
236 }
-
237 
-
238 
-
239 #endif
- -
entt::resource_loader
Base class for resource loaders.
Definition: loader.hpp:45
-
entt::resource_cache::contains
bool contains(const id_type id) const
Checks if a cache contains a given identifier.
Definition: cache.hpp:178
-
entt::basic_handle
Non-owning handle to an entity.
Definition: handle.hpp:26
-
entt::id_type
std::uint32_t id_type
Alias declaration for type identifiers.
Definition: fwd.hpp:17
-
entt::resource_cache::each
void each(Func func) const
Iterates all resources.
Definition: cache.hpp:214
-
entt::resource_cache::resource_cache
resource_cache(resource_cache &&)=default
Default move constructor.
-
entt::resource_cache::resource_cache
resource_cache()=default
Default constructor.
-
entt::resource_cache::empty
bool empty() const noexcept
Returns true if a cache contains no resources, false otherwise.
Definition: cache.hpp:56
-
entt::resource_cache::temp
resource_handle< Resource > temp(Args &&... args) const
Creates a temporary handle for a resource.
Definition: cache.hpp:148
-
entt::resource_cache::handle
resource_handle< Resource > handle(const id_type id) const
Creates a handle for a given resource identifier.
Definition: cache.hpp:165
-
entt::resource_cache
Simple cache for resources of a given type.
Definition: cache.hpp:29
+
236 
+
237 #endif
+
entt::resource_handle
Shared resource handle.
Definition: handle.hpp:28
entt
EnTT default namespace.
Definition: algorithm.hpp:13
+
entt::id_type
std::uint32_t id_type
Alias declaration for type identifiers.
Definition: fwd.hpp:17
+
entt::basic_handle
Non-owning handle to an entity.
Definition: handle.hpp:26
+
entt::resource_cache
Simple cache for resources of a given type.
Definition: cache.hpp:29
+
entt::resource_cache::each
void each(Func func) const
Iterates all resources.
Definition: cache.hpp:212
+
entt::resource_cache::reload
resource_handle< Resource > reload(const id_type id, Args &&... args)
Reloads a resource or loads it for the first time if not present.
Definition: cache.hpp:129
entt::resource_cache::operator=
resource_cache & operator=(resource_cache &&)=default
Default move assignment operator.
-
entt::resource_cache::discard
void discard(const id_type id)
Discards the resource that corresponds to a given identifier.
Definition: cache.hpp:190
-
entt::resource_cache::clear
void clear() noexcept
Clears a cache and discards all its resources.
Definition: cache.hpp:66
-
entt::resource_handle
Shared resource handle.
Definition: handle.hpp:27
-
entt::resource_cache::reload
resource_handle< Resource > reload(const id_type id, Args &&... args)
Reloads a resource or loads it for the first time if not present.
Definition: cache.hpp:131
-
entt::resource_cache::load
resource_handle< Resource > load(const id_type id, Args &&... args)
Loads the resource that corresponds to a given identifier.
Definition: cache.hpp:93
+
entt::resource_cache::discard
void discard(const id_type id)
Discards the resource that corresponds to a given identifier.
Definition: cache.hpp:188
+
entt::resource_cache::clear
void clear()
Clears a cache and discards all its resources.
Definition: cache.hpp:66
entt::resource_cache::resource_type
Resource resource_type
Type of resources managed by a cache.
Definition: cache.hpp:33
+
entt::resource_cache::handle
resource_handle< Resource > handle(const id_type id) const
Creates a handle for a given resource identifier.
Definition: cache.hpp:163
+
entt::resource_cache::empty
bool empty() const
Returns true if a cache contains no resources, false otherwise.
Definition: cache.hpp:56
+
entt::resource_cache::temp
resource_handle< Resource > temp(Args &&... args) const
Creates a temporary handle for a resource.
Definition: cache.hpp:146
+
entt::resource_cache::contains
bool contains(const id_type id) const
Checks if a cache contains a given identifier.
Definition: cache.hpp:176
+
entt::resource_cache::size
size_type size() const
Number of resources managed by a cache.
Definition: cache.hpp:48
+
entt::resource_cache::resource_cache
resource_cache()=default
Default constructor.
entt::resource_cache::size_type
std::size_t size_type
Unsigned integer type.
Definition: cache.hpp:31
-
entt::resource_cache::size
size_type size() const noexcept
Number of resources managed by a cache.
Definition: cache.hpp:48
+
entt::resource_cache::resource_cache
resource_cache(resource_cache &&)=default
Default move constructor.
+
entt::resource_cache::load
resource_handle< Resource > load(const id_type id, Args &&... args)
Loads the resource that corresponds to a given identifier.
Definition: cache.hpp:93
+ diff --git a/classbasic__view__impl.html b/classbasic__view__impl.html new file mode 100644 index 000000000..513681c25 --- /dev/null +++ b/classbasic__view__impl.html @@ -0,0 +1,90 @@ + + + + + + + +EnTT: basic_view_impl<... > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
EnTT +  3.8.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
basic_view_impl<... > Class Template Reference
+
+
+ +

View implementation. + More...

+

Detailed Description

+

template<typename...>
+class basic_view_impl<... >

+ +

View implementation.

+

Internal details not to be documented.

+

Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

+ +

Definition at line 166 of file view.hpp.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html b/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html new file mode 100644 index 000000000..21ca3150a --- /dev/null +++ b/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html @@ -0,0 +1,102 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
+
+ + + + + + +
+
EnTT +  3.8.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Member List
+
+
+ +

This is the complete list of members for basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
back() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
basic_view_impl()basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
basic_view_impl(storage_type< Component > &... component, const storage_type< Exclude > &... epool)basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
begin() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
contains(const entity_type entt) constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
each(Func func) constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
each(Func func) constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
each() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
each() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
end() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
entity_type typedefbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
find(const entity_type entt) constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
front() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
get([[maybe_unused]] const entity_type entt) constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
iterable_view typedefbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
iterator typedefbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
operator bool() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inlineexplicit
operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >friend
rbegin() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
rend() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
reverse_iterator typedefbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
size_hint() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
size_type typedefbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
use() constbasic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
+ + + + diff --git a/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html b/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html new file mode 100644 index 000000000..f6858c9bd --- /dev/null +++ b/classbasic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html @@ -0,0 +1,918 @@ + + + + + + + +EnTT: basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
EnTT +  3.8.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
+
+
basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Class Template Reference
+
+
+ +

Multi component view. + More...

+ +

#include <view.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Types

+using entity_type = Entity
 Underlying entity identifier.
 
+using size_type = std::size_t
 Unsigned integer type.
 
+using iterator = internal::view_iterator< Policy, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
 Bidirectional iterator type.
 
+using reverse_iterator = internal::view_iterator< Policy, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
 Reverse iterator type.
 
+using iterable_view = iterable
 Iterable view type.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_view_impl ()
 Default constructor to use to create empty, invalid views.
 
 basic_view_impl (storage_type< Component > &... component, const storage_type< Exclude > &... epool)
 Constructs a multi-type view from a set of storage classes. More...
 
template<typename Comp >
void use () const
 Forces the type to use to drive iterations. More...
 
size_type size_hint () const
 Estimates the number of entities iterated by the view. More...
 
iterator begin () const
 Returns an iterator to the first entity of the view. More...
 
iterator end () const
 Returns an iterator that is past the last entity of the view. More...
 
reverse_iterator rbegin () const
 Returns an iterator to the first entity of the reversed view. More...
 
reverse_iterator rend () const
 Returns an iterator that is past the last entity of the reversed view. More...
 
entity_type front () const
 Returns the first entity of the view, if any. More...
 
entity_type back () const
 Returns the last entity of the view, if any. More...
 
iterator find (const entity_type entt) const
 Finds an entity. More...
 
 operator bool () const
 Checks if a view is properly initialized. More...
 
bool contains (const entity_type entt) const
 Checks if a view contains an entity. More...
 
template<typename... Comp>
decltype(auto) get ([[maybe_unused]] const entity_type entt) const
 Returns the components assigned to the given entity. More...
 
template<typename Func >
void each (Func func) const
 Iterates entities and components and applies the given function object to them. More...
 
template<typename Comp , typename Func >
void each (Func func) const
 Iterates entities and components and applies the given function object to them. More...
 
iterable_view each () const
 Returns an iterable object to use to visit the view. More...
 
template<typename Comp >
iterable_view each () const
 Returns an iterable object to use to visit the view. More...
 
+ + + + + +

+Friends

template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
 Combines two views in a more specific one (friend function). More...
 
+

Detailed Description

+

template<typename Policy, typename Entity, typename... Exclude, typename... Component>
+class basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >

+ +

Multi component view.

+

Multi component views iterate over those entities that have at least all the given components in their bags. During initialization, a multi component view looks at the number of entities available for each component and uses the smallest set in order to get a performance boost when iterate.

+

Important

+

Iterators aren't invalidated if:

+ +

In all other cases, modifying the pools iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

+
Note
Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
+
Warning
Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
+
Template Parameters
+ + + + + +
PolicyCommon (stricter) storage policy.
EntityA valid entity type (see entt_traits for more details).
ExcludeTypes of components used to filter the view.
ComponentTypes of components iterated by the view.
+
+
+ +

Definition at line 209 of file view.hpp.

+

Constructor & Destructor Documentation

+ +

◆ basic_view_impl()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::basic_view_impl (storage_type< Component > &... component,
const storage_type< Exclude > &... epool 
)
+
+inline
+
+ +

Constructs a multi-type view from a set of storage classes.

+
Parameters
+ + + +
componentThe storage for the types to iterate.
epoolThe storage for the types used to filter the view.
+
+
+ +

Definition at line 364 of file view.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
entity_type basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::back () const
+
+inline
+
+ +

Returns the last entity of the view, if any.

+
Returns
The last entity of the view if one exists, the null entity otherwise.
+ +

Definition at line 454 of file view.hpp.

+ +
+
+ +

◆ begin()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
iterator basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::begin () const
+
+inline
+
+ +

Returns an iterator to the first entity of the view.

+

The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first entity of the view.
+ +

Definition at line 395 of file view.hpp.

+ +
+
+ +

◆ contains()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + + +
bool basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::contains (const entity_type entt) const
+
+inline
+
+ +

Checks if a view contains an entity.

+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
True if the view contains the given entity, false otherwise.
+ +

Definition at line 483 of file view.hpp.

+ +
+
+ +

◆ each() [1/4]

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
iterable_view basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each () const
+
+inline
+
+ +

Returns an iterable object to use to visit the view.

+

The iterable object returns tuples that contain the current entity and a set of references to its non-empty components. The constness of the components is as requested.

+
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
+
Returns
An iterable object to use to visit the view.
+ +

Definition at line 575 of file view.hpp.

+ +
+
+ +

◆ each() [2/4]

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename Comp >
+ + + + + +
+ + + + + + + +
iterable_view basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each () const
+
+inline
+
+ +

Returns an iterable object to use to visit the view.

+

The pool of the suggested component is used to lead the iterations. The returned elements will therefore respect the order of the pool associated with that type.

+
See also
each
+
Template Parameters
+ + +
CompType of component to use to drive the iteration.
+
+
+
Returns
An iterable object to use to visit the view.
+ +

Definition at line 592 of file view.hpp.

+ +
+
+ +

◆ each() [3/4]

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename Func >
+ + + + + +
+ + + + + + + + +
void basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each (Func func) const
+
+inline
+
+ +

Iterates entities and components and applies the given function object to them.

+

The function object is invoked for each entity. It is provided with the entity itself and a set of references to non-empty components. The constness of the components is as requested.
+ The signature of the function must be equivalent to one of the following forms:

+
void(const entity_type, Type &...);
+
void(Type &...);
+ +
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
+
Template Parameters
+ + +
FuncType of the function object to invoke.
+
+
+
Parameters
+ + +
funcA valid function object.
+
+
+ +

Definition at line 538 of file view.hpp.

+ +
+
+ +

◆ each() [4/4]

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename Comp , typename Func >
+ + + + + +
+ + + + + + + + +
void basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each (Func func) const
+
+inline
+
+ +

Iterates entities and components and applies the given function object to them.

+

The pool of the suggested component is used to lead the iterations. The returned entities will therefore respect the order of the pool associated with that type.

+
See also
each
+
Template Parameters
+ + + +
CompType of component to use to drive the iteration.
FuncType of the function object to invoke.
+
+
+
Parameters
+ + +
funcA valid function object.
+
+
+ +

Definition at line 557 of file view.hpp.

+ +
+
+ +

◆ end()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
iterator basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::end () const
+
+inline
+
+ +

Returns an iterator that is past the last entity of the view.

+

The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

+
Returns
An iterator to the entity following the last entity of the view.
+ +

Definition at line 408 of file view.hpp.

+ +
+
+ +

◆ find()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + + +
iterator basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::find (const entity_type entt) const
+
+inline
+
+ +

Finds an entity.

+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
+ +

Definition at line 465 of file view.hpp.

+ +
+
+ +

◆ front()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
entity_type basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::front () const
+
+inline
+
+ +

Returns the first entity of the view, if any.

+
Returns
The first entity of the view if one exists, the null entity otherwise.
+ +

Definition at line 444 of file view.hpp.

+ +
+
+ +

◆ get()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename... Comp>
+ + + + + +
+ + + + + + + + +
decltype(auto) basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::get ([[maybe_unused] ] const entity_type entt) const
+
+inline
+
+ +

Returns the components assigned to the given entity.

+

Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

+
Warning
Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
+
Template Parameters
+ + +
CompTypes of components to get.
+
+
+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
The components assigned to the entity.
+ +

Definition at line 503 of file view.hpp.

+ +
+
+ +

◆ operator bool()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::operator bool () const
+
+inlineexplicit
+
+ +

Checks if a view is properly initialized.

+
Returns
True if the view is properly initialized, false otherwise.
+ +

Definition at line 474 of file view.hpp.

+ +
+
+ +

◆ rbegin()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
reverse_iterator basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rbegin () const
+
+inline
+
+ +

Returns an iterator to the first entity of the reversed view.

+

The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first entity of the reversed view.
+ +

Definition at line 420 of file view.hpp.

+ +
+
+ +

◆ rend()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
reverse_iterator basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rend () const
+
+inline
+
+ +

Returns an iterator that is past the last entity of the reversed view.

+

The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

+
Returns
An iterator to the entity following the last entity of the reversed view.
+ +

Definition at line 435 of file view.hpp.

+ +
+
+ +

◆ size_hint()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+ + + + + +
+ + + + + + + +
size_type basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::size_hint () const
+
+inline
+
+ +

Estimates the number of entities iterated by the view.

+
Returns
Estimated number of entities iterated by the view.
+ +

Definition at line 383 of file view.hpp.

+ +
+
+ +

◆ use()

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename Comp >
+ + + + + +
+ + + + + + + +
void basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::use () const
+
+inline
+
+ +

Forces the type to use to drive iterations.

+
Template Parameters
+ + +
CompType of component to use to drive the iteration.
+
+
+ +

Definition at line 375 of file view.hpp.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator|

+ +
+
+
+template<typename Policy , typename Entity , typename... Exclude, typename... Component>
+
+template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
)
+
+friend
+
+ +

Combines two views in a more specific one (friend function).

+
Template Parameters
+ + + + + + +
IdA valid entity type (see entt_traits for more details).
ELhsFilter list of the first view.
CLhsComponent list of the first view.
ERhsFilter list of the second view.
CRhsComponent list of the second view.
+
+
+
Returns
A more specific view.
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html b/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html new file mode 100644 index 000000000..f2bcc4e8b --- /dev/null +++ b/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html @@ -0,0 +1,103 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
+
+ + + + + + +
+
EnTT +  3.8.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Member List
+
+
+ +

This is the complete list of members for basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
back() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
basic_view_impl()basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
basic_view_impl(storage_type &ref)basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
begin() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
contains(const entity_type entt) constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
data() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
each(Func func) constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
each() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
empty() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
end() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
entity_type typedefbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
find(const entity_type entt) constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
front() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
get(const entity_type entt) constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
iterable_view typedefbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
iterator typedefbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
operator bool() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inlineexplicit
operator[](const size_type pos) constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >friend
raw() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
rbegin() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
rend() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
reverse_iterator typedefbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
size() constbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
size_type typedefbasic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
+ + + + diff --git a/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html b/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html new file mode 100644 index 000000000..917fcbb71 --- /dev/null +++ b/classbasic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html @@ -0,0 +1,911 @@ + + + + + + + +EnTT: basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
EnTT +  3.8.0 +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
+
+
basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Class Template Reference
+
+
+ +

Single component view specialization. + More...

+ +

#include <view.hpp>

+ + + + + + + + + + + + + + + + + +

+Public Types

+using entity_type = Entity
 Underlying entity identifier.
 
+using size_type = std::size_t
 Unsigned integer type.
 
+using iterator = typename basic_common_type::iterator
 Random access iterator type.
 
+using reverse_iterator = typename basic_common_type::reverse_iterator
 Reversed iterator type.
 
+using iterable_view = iterable
 Iterable view type.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_view_impl ()
 Default constructor to use to create empty, invalid views.
 
 basic_view_impl (storage_type &ref)
 Constructs a single-type view from a storage class. More...
 
size_type size () const
 Returns the number of entities that have the given component. More...
 
bool empty () const
 Checks whether a view is empty. More...
 
auto raw () const
 Direct access to the raw representation offered by the storage. More...
 
auto data () const
 Direct access to the list of entities. More...
 
iterator begin () const
 Returns an iterator to the first entity of the view. More...
 
iterator end () const
 Returns an iterator that is past the last entity of the view. More...
 
reverse_iterator rbegin () const
 Returns an iterator to the first entity of the reversed view. More...
 
reverse_iterator rend () const
 Returns an iterator that is past the last entity of the reversed view. More...
 
entity_type front () const
 Returns the first entity of the view, if any. More...
 
entity_type back () const
 Returns the last entity of the view, if any. More...
 
iterator find (const entity_type entt) const
 Finds an entity. More...
 
entity_type operator[] (const size_type pos) const
 Returns the identifier that occupies the given position. More...
 
 operator bool () const
 Checks if a view is properly initialized. More...
 
bool contains (const entity_type entt) const
 Checks if a view contains an entity. More...
 
template<typename... Comp>
decltype(auto) get (const entity_type entt) const
 Returns the component assigned to the given entity. More...
 
template<typename Func >
void each (Func func) const
 Iterates entities and components and applies the given function object to them. More...
 
iterable_view each () const
 Returns an iterable object to use to visit the view. More...
 
+ + + + + +

+Friends

template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
 Combines two views in a more specific one (friend function). More...
 
+

Detailed Description

+

template<typename Entity, typename Component>
+class basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >

+ +

Single component view specialization.

+

Single component views are specialized in order to get a boost in terms of performance. This kind of views can access the underlying data structure directly and avoid superfluous checks.

+

Important

+

Iterators aren't invalidated if:

+ +

In all other cases, modifying the pool iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

+
Note
Views share a reference to the underlying data structure of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
+
Warning
Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
+
Template Parameters
+ + + +
EntityA valid entity type (see entt_traits for more details).
ComponentType of component iterated by the view.
+
+
+ +

Definition at line 648 of file view.hpp.

+

Constructor & Destructor Documentation

+ +

◆ basic_view_impl()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + + +
basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::basic_view_impl (storage_type & ref)
+
+inline
+
+ +

Constructs a single-type view from a storage class.

+
Parameters
+ + +
refThe storage for the type to iterate.
+
+
+ +

Definition at line 749 of file view.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
entity_type basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::back () const
+
+inline
+
+ +

Returns the last entity of the view, if any.

+
Returns
The last entity of the view if one exists, the null entity otherwise.
+ +

Definition at line 857 of file view.hpp.

+ +
+
+ +

◆ begin()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
iterator basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::begin () const
+
+inline
+
+ +

Returns an iterator to the first entity of the view.

+

The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

+
Returns
An iterator to the first entity of the view.
+ +

Definition at line 798 of file view.hpp.

+ +
+
+ +

◆ contains()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + + +
bool basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::contains (const entity_type entt) const
+
+inline
+
+ +

Checks if a view contains an entity.

+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
True if the view contains the given entity, false otherwise.
+ +

Definition at line 895 of file view.hpp.

+ +
+
+ +

◆ data()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
auto basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::data () const
+
+inline
+
+ +

Direct access to the list of entities.

+

The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

+
Returns
A pointer to the array of entities.
+ +

Definition at line 786 of file view.hpp.

+ +
+
+ +

◆ each() [1/2]

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
iterable_view basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each () const
+
+inline
+
+ +

Returns an iterable object to use to visit the view.

+

The iterable object returns tuples that contain the current entity and a reference to its component if it's a non-empty one. The constness of the component is as requested.

+
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
+
Returns
An iterable object to use to visit the view.
+ +

Definition at line 986 of file view.hpp.

+ +
+
+ +

◆ each() [2/2]

+ +
+
+
+template<typename Entity , typename Component >
+
+template<typename Func >
+ + + + + +
+ + + + + + + + +
void basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each (Func func) const
+
+inline
+
+ +

Iterates entities and components and applies the given function object to them.

+

The function object is invoked for each entity. It is provided with the entity itself and a reference to the component if it's a non-empty one. The constness of the component is as requested.
+ The signature of the function must be equivalent to one of the following forms:

+
void(const entity_type, Component &);
+
void(Component &);
+ +
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
+
Template Parameters
+ + +
FuncType of the function object to invoke.
+
+
+
Parameters
+ + +
funcA valid function object.
+
+
+ +

Definition at line 949 of file view.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
bool basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::empty () const
+
+inline
+
+ +

Checks whether a view is empty.

+
Returns
True if the view is empty, false otherwise.
+ +

Definition at line 766 of file view.hpp.

+ +
+
+ +

◆ end()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
iterator basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::end () const
+
+inline
+
+ +

Returns an iterator that is past the last entity of the view.

+

The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

+
Returns
An iterator to the entity following the last entity of the view.
+ +

Definition at line 811 of file view.hpp.

+ +
+
+ +

◆ find()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + + +
iterator basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::find (const entity_type entt) const
+
+inline
+
+ +

Finds an entity.

+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
+ +

Definition at line 868 of file view.hpp.

+ +
+
+ +

◆ front()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
entity_type basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::front () const
+
+inline
+
+ +

Returns the first entity of the view, if any.

+
Returns
The first entity of the view if one exists, the null entity otherwise.
+ +

Definition at line 847 of file view.hpp.

+ +
+
+ +

◆ get()

+ +
+
+
+template<typename Entity , typename Component >
+
+template<typename... Comp>
+ + + + + +
+ + + + + + + + +
decltype(auto) basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::get (const entity_type entt) const
+
+inline
+
+ +

Returns the component assigned to the given entity.

+

Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

+
Warning
Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
+
Template Parameters
+ + +
CompTypes of components to get.
+
+
+
Parameters
+ + +
enttA valid entity identifier.
+
+
+
Returns
The component assigned to the entity.
+ +

Definition at line 915 of file view.hpp.

+ +
+
+ +

◆ operator bool()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator bool () const
+
+inlineexplicit
+
+ +

Checks if a view is properly initialized.

+
Returns
True if the view is properly initialized, false otherwise.
+ +

Definition at line 886 of file view.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + + +
entity_type basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator[] (const size_type pos) const
+
+inline
+
+ +

Returns the identifier that occupies the given position.

+
Parameters
+ + +
posPosition of the element to return.
+
+
+
Returns
The identifier that occupies the given position.
+ +

Definition at line 878 of file view.hpp.

+ +
+
+ +

◆ raw()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
auto basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::raw () const
+
+inline
+
+ +

Direct access to the raw representation offered by the storage.

+
Returns
A pointer to the array of components.
+ +

Definition at line 774 of file view.hpp.

+ +
+
+ +

◆ rbegin()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
reverse_iterator basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rbegin () const
+
+inline
+
+ +

Returns an iterator to the first entity of the reversed view.

+

The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

+
Returns
An iterator to the first entity of the reversed view.
+ +

Definition at line 823 of file view.hpp.

+ +
+
+ +

◆ rend()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
reverse_iterator basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rend () const
+
+inline
+
+ +

Returns an iterator that is past the last entity of the reversed view.

+

The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

+
Returns
An iterator to the entity following the last entity of the reversed view.
+ +

Definition at line 838 of file view.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<typename Entity , typename Component >
+ + + + + +
+ + + + + + + +
size_type basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::size () const
+
+inline
+
+ +

Returns the number of entities that have the given component.

+
Returns
Number of entities that have the given component.
+ +

Definition at line 758 of file view.hpp.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ operator|

+ +
+
+
+template<typename Entity , typename Component >
+
+template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
)
+
+friend
+
+ +

Combines two views in a more specific one (friend function).

+
Template Parameters
+ + + + + + +
IdA valid entity type (see entt_traits for more details).
ELhsFilter list of the first view.
CLhsComponent list of the first view.
ERhsFilter list of the second view.
CRhsComponent list of the second view.
+
+
+
Returns
A more specific view.
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classentt_1_1basic__any-members.html b/classentt_1_1basic__any-members.html index 9b8c045a1..9f9a3c7a8 100644 --- a/classentt_1_1basic__any-members.html +++ b/classentt_1_1basic__any-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -73,30 +73,35 @@ $(function() {

This is the complete list of members for entt::basic_any< Len, Align >, including all inherited members.

- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - + +
as_ref() noexceptentt::basic_any< Len, Align >inline
as_ref() const noexceptentt::basic_any< Len, Align >inline
basic_any() noexceptentt::basic_any< Len, Align >inline
basic_any(std::in_place_type_t< Type >, [[maybe_unused]] Args &&... args)entt::basic_any< Len, Align >inlineexplicit
basic_any(std::reference_wrapper< Type > value) noexceptentt::basic_any< Len, Align >inline
basic_any(Type &&value)entt::basic_any< Len, Align >inline
basic_any(const basic_any &other)entt::basic_any< Len, Align >inline
basic_any(basic_any &&other) noexceptentt::basic_any< Len, Align >inline
data() const noexceptentt::basic_any< Len, Align >inline
data() noexceptentt::basic_any< Len, Align >inline
emplace(Args &&... args)entt::basic_any< Len, Align >inline
instance (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align >
operator bool() const noexceptentt::basic_any< Len, Align >inlineexplicit
operator=(basic_any other)entt::basic_any< Len, Align >inline
operator==(const basic_any &other) const noexceptentt::basic_any< Len, Align >inline
alignmententt::basic_any< Len, Align >static
as_ref()entt::basic_any< Len, Align >inline
as_ref() constentt::basic_any< Len, Align >inline
basic_any()entt::basic_any< Len, Align >inline
basic_any(std::in_place_type_t< Type >, Args &&... args)entt::basic_any< Len, Align >inlineexplicit
basic_any(std::reference_wrapper< Type > value)entt::basic_any< Len, Align >inline
basic_any(Type &&value)entt::basic_any< Len, Align >inline
basic_any(const basic_any &other)entt::basic_any< Len, Align >inline
basic_any(basic_any &&other)entt::basic_any< Len, Align >inline
data() constentt::basic_any< Len, Align >inline
data()entt::basic_any< Len, Align >inline
emplace(Args &&... args)entt::basic_any< Len, Align >inline
instance (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align >
lengthentt::basic_any< Len, Align >static
operator bool() constentt::basic_any< Len, Align >inlineexplicit
operator=(const basic_any &other)entt::basic_any< Len, Align >inline
operator=(basic_any &&other)entt::basic_any< Len, Align >inline
operator=(std::reference_wrapper< Type > value)entt::basic_any< Len, Align >inline
operator=(Type &&value)entt::basic_any< Len, Align >inline
operator==(const basic_any &other) constentt::basic_any< Len, Align >inline
owner() constentt::basic_any< Len, Align >inline
reset()entt::basic_any< Len, Align >inline
storage (defined in entt::basic_any< Len, Align >)entt::basic_any< Len, Align >
swap(basic_any &lhs, basic_any &rhs)entt::basic_any< Len, Align >friend
type() const noexceptentt::basic_any< Len, Align >inline
~basic_any()entt::basic_any< Len, Align >inline
type() constentt::basic_any< Len, Align >inline
~basic_any()entt::basic_any< Len, Align >inline
diff --git a/classentt_1_1basic__any.html b/classentt_1_1basic__any.html index 3374ed2ea..5ac91da39 100644 --- a/classentt_1_1basic__any.html +++ b/classentt_1_1basic__any.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_any< Len, Align > Class Template Reference @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -68,7 +68,7 @@ $(function() {
Public Member Functions | -Friends | +Static Public Attributes | List of all members
entt::basic_any< Len, Align > Class Template Reference
@@ -82,44 +82,55 @@ $(function() { - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -128,24 +139,32 @@ Public Member Functions void  - - - - - - - - - - - - + + + + + + + + + + + + + + +

Public Member Functions

basic_any () noexcept
 Default constructor.
 
template<typename Type , typename... Args>
 basic_any (std::in_place_type_t< Type >, [[maybe_unused]] Args &&... args)
 Constructs an any by directly initializing the new object. More...
 
template<typename Type >
 basic_any (std::reference_wrapper< Type > value) noexcept
 Constructs an any that holds an unmanaged object. More...
 
basic_any ()
 Default constructor.
 
template<typename Type , typename... Args>
 basic_any (std::in_place_type_t< Type >, Args &&... args)
 Constructs a wrapper by directly initializing the new object. More...
 
template<typename Type >
 basic_any (std::reference_wrapper< Type > value)
 Constructs a wrapper that holds an unmanaged object. More...
 
template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
 basic_any (Type &&value)
 Constructs an any from a given value. More...
 Constructs a wrapper from a given value. More...
 
 basic_any (const basic_any &other)
 Copy constructor. More...
 
 basic_any (basic_any &&other) noexcept
 Move constructor. More...
 
 basic_any (basic_any &&other)
 Move constructor. More...
 
 ~basic_any ()
 Frees the internal storage, whatever it means.
 
basic_anyoperator= (basic_any other)
 Assignment operator. More...
 
type_info type () const noexcept
 Returns the type of the contained object. More...
 
const void * data () const noexcept
 Returns an opaque pointer to the contained instance. More...
 
void * data () noexcept
 Returns an opaque pointer to the contained instance. More...
 
basic_anyoperator= (const basic_any &other)
 Copy assignment operator. More...
 
basic_anyoperator= (basic_any &&other)
 Move assignment operator. More...
 
template<typename Type >
basic_anyoperator= (std::reference_wrapper< Type > value)
 Value assignment operator. More...
 
template<typename Type >
std::enable_if_t<!std::is_same_v< std::decay_t< Type >, basic_any >, basic_any & > operator= (Type &&value)
 Value assignment operator. More...
 
type_info type () const
 Returns the type of the contained object. More...
 
const void * data () const
 Returns an opaque pointer to the contained instance. More...
 
void * data ()
 Returns an opaque pointer to the contained instance. More...
 
template<typename Type , typename... Args>
void emplace (Args &&... args)
 Replaces the contained object by creating a new instance directly. More...
reset ()
 Destroys contained object.
 
 operator bool () const noexcept
 Returns false if a wrapper is empty, true otherwise. More...
 
bool operator== (const basic_any &other) const noexcept
 Checks if two wrappers differ in their content. More...
 
basic_any as_ref () noexcept
 Aliasing constructor. More...
 
basic_any as_ref () const noexcept
 Aliasing constructor. More...
 
 operator bool () const
 Returns false if a wrapper is empty, true otherwise. More...
 
bool operator== (const basic_any &other) const
 Checks if two wrappers differ in their content. More...
 
basic_any as_ref ()
 Aliasing constructor. More...
 
basic_any as_ref () const
 Aliasing constructor. More...
 
bool owner () const
 Returns true if a wrapper owns its object, false otherwise. More...
 
- - - - + + + + + + +

-Friends

void swap (basic_any &lhs, basic_any &rhs)
 Swaps two any objects. More...
 

+Static Public Attributes

+static constexpr auto length = Len
 Size of the internal storage.
 
+static constexpr auto alignment = Align
 Alignment requirement.
 

Detailed Description

template<std::size_t Len, std::size_t Align>
@@ -162,8 +181,8 @@ class entt::basic_any< Len, Align >

Definition at line 26 of file any.hpp.

Constructor & Destructor Documentation

- -

◆ basic_any() [1/5]

+ +

◆ basic_any() [1/5]

@@ -184,7 +203,7 @@ template<typename Type , typename... Args>
- [[maybe_unused] ] Args &&...  + Args &&...  args  @@ -200,7 +219,7 @@ template<typename Type , typename... Args>
-

Constructs an any by directly initializing the new object.

+

Constructs a wrapper by directly initializing the new object.

Template Parameters
@@ -215,12 +234,12 @@ template<typename Type , typename... Args> -

Definition at line 175 of file any.hpp.

+

Definition at line 158 of file any.hpp.

- -

◆ basic_any() [2/5]

+ +

◆ basic_any() [2/5]

@@ -242,12 +261,12 @@ template<typename Type >
TypeType of object to use to initialize the wrapper.
-inlinenoexcept +inline
-

Constructs an any that holds an unmanaged object.

+

Constructs a wrapper that holds an unmanaged object.

Template Parameters
@@ -261,7 +280,7 @@ template<typename Type > -

Definition at line 197 of file any.hpp.

+

Definition at line 172 of file any.hpp.

@@ -293,7 +312,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s
TypeType of object to use to initialize the wrapper.
-

Constructs an any from a given value.

+

Constructs a wrapper from a given value.

Template Parameters
@@ -307,7 +326,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -

Definition at line 207 of file any.hpp.

+

Definition at line 185 of file any.hpp.

@@ -345,12 +364,12 @@ template<std::size_t Len, std::size_t Align> -

Definition at line 215 of file any.hpp.

+

Definition at line 197 of file any.hpp.

- -

◆ basic_any() [5/5]

+ +

◆ basic_any() [5/5]

@@ -370,7 +389,7 @@ template<std::size_t Len, std::size_t Align>
TypeType of object to use to initialize the wrapper.
-inlinenoexcept +inline
@@ -383,45 +402,13 @@ template<std::size_t Len, std::size_t Align>
-

Definition at line 225 of file any.hpp.

+

Definition at line 209 of file any.hpp.

Member Function Documentation

- -

◆ as_ref() [1/2]

- -
-
-
-template<std::size_t Len, std::size_t Align>
- - - - - -
- - - - - - - -
basic_any entt::basic_any< Len, Align >::as_ref () const
-
-inlinenoexcept
-
- -

Aliasing constructor.

-
Returns
An any that shares a reference to an unmanaged object.
- -

Definition at line 327 of file any.hpp.

- -
-
- -

◆ as_ref() [2/2]

+ +

◆ as_ref() [1/2]

@@ -440,20 +427,20 @@ template<std::size_t Len, std::size_t Align>
-inlinenoexcept +inline

Aliasing constructor.

-
Returns
An any that shares a reference to an unmanaged object.
+
Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 320 of file any.hpp.

+

Definition at line 335 of file any.hpp.

- -

◆ data() [1/2]

+ +

◆ as_ref() [2/2]

@@ -464,7 +451,7 @@ template<std::size_t Len, std::size_t Align>
- + @@ -472,20 +459,20 @@ template<std::size_t Len, std::size_t Align>
const void* entt::basic_any< Len, Align >::data basic_any entt::basic_any< Len, Align >::as_ref ( ) const
-inlinenoexcept +inline
-

Returns an opaque pointer to the contained instance.

-
Returns
An opaque pointer the contained instance, if any.
+

Aliasing constructor.

+
Returns
A wrapper that shares a reference to an unmanaged object.
-

Definition at line 261 of file any.hpp.

+

Definition at line 340 of file any.hpp.

- -

◆ data() [2/2]

+ +

◆ data() [1/2]

@@ -504,7 +491,7 @@ template<std::size_t Len, std::size_t Align>
-inlinenoexcept +inline
@@ -512,7 +499,39 @@ template<std::size_t Len, std::size_t Align>

Returns an opaque pointer to the contained instance.

Returns
An opaque pointer the contained instance, if any.
-

Definition at line 266 of file any.hpp.

+

Definition at line 290 of file any.hpp.

+ + + + +

◆ data() [2/2]

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+ + + + + +
+ + + + + + + +
const void* entt::basic_any< Len, Align >::data () const
+
+inline
+
+ +

Returns an opaque pointer to the contained instance.

+
Returns
An opaque pointer the contained instance, if any.
+ +

Definition at line 285 of file any.hpp.

@@ -559,12 +578,12 @@ template<typename Type , typename... Args> -

Definition at line 277 of file any.hpp.

+

Definition at line 301 of file any.hpp.

- -

◆ operator bool()

+ +

◆ operator bool()

@@ -583,7 +602,7 @@ template<std::size_t Len, std::size_t Align>
-inlineexplicitnoexcept +inlineexplicit
@@ -591,12 +610,12 @@ template<std::size_t Len, std::size_t Align>

Returns false if a wrapper is empty, true otherwise.

Returns
False if the wrapper is empty, true otherwise.
-

Definition at line 290 of file any.hpp.

+

Definition at line 317 of file any.hpp.

- -

◆ operator=()

+ +

◆ operator=() [1/4]

@@ -609,7 +628,7 @@ template<std::size_t Len, std::size_t Align>
basic_any& entt::basic_any< Len, Align >::operator= ( - basic_any< Len, Align >  + basic_any< Len, Align > &&  other) @@ -621,21 +640,154 @@ template<std::size_t Len, std::size_t Align>
-

Assignment operator.

+

Move assignment operator.

Parameters
- +
otherThe instance to assign from.
otherThe instance to move from.
Returns
This any object.
-

Definition at line 242 of file any.hpp.

+

Definition at line 238 of file any.hpp.

- -

◆ operator==()

+ +

◆ operator=() [2/4]

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+ + + + + +
+ + + + + + + + +
basic_any& entt::basic_any< Len, Align >::operator= (const basic_any< Len, Align > & other)
+
+inline
+
+ +

Copy assignment operator.

+
Parameters
+ + +
otherThe instance to copy from.
+
+
+
Returns
This any object.
+ +

Definition at line 227 of file any.hpp.

+ +
+
+ +

◆ operator=() [3/4]

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+
+template<typename Type >
+ + + + + +
+ + + + + + + + +
basic_any& entt::basic_any< Len, Align >::operator= (std::reference_wrapper< Type > value)
+
+inline
+
+ +

Value assignment operator.

+
Template Parameters
+ + +
TypeType of object to use to initialize the wrapper.
+
+
+
Parameters
+ + +
valueAn instance of an object to use to initialize the wrapper.
+
+
+
Returns
This any object.
+ +

Definition at line 253 of file any.hpp.

+ +
+
+ +

◆ operator=() [4/4]

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+
+template<typename Type >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>, basic_any &> entt::basic_any< Len, Align >::operator= (Type && value)
+
+inline
+
+ +

Value assignment operator.

+
Template Parameters
+ + +
TypeType of object to use to initialize the wrapper.
+
+
+
Parameters
+ + +
valueAn instance of an object to use to initialize the wrapper.
+
+
+
Returns
This any object.
+ +

Definition at line 266 of file any.hpp.

+ +
+
+ +

◆ operator==()

@@ -655,7 +807,7 @@ template<std::size_t Len, std::size_t Align>
-inlinenoexcept +inline
@@ -669,12 +821,44 @@ template<std::size_t Len, std::size_t Align>
Returns
False if the two objects differ in their content, true otherwise.
-

Definition at line 299 of file any.hpp.

+

Definition at line 326 of file any.hpp.

- -

◆ type()

+ +

◆ owner()

+ +
+
+
+template<std::size_t Len, std::size_t Align>
+ + + + + +
+ + + + + + + +
bool entt::basic_any< Len, Align >::owner () const
+
+inline
+
+ +

Returns true if a wrapper owns its object, false otherwise.

+
Returns
True if the wrapper owns its object, false otherwise.
+ +

Definition at line 348 of file any.hpp.

+ +
+
+ +

◆ type()

@@ -693,7 +877,7 @@ template<std::size_t Len, std::size_t Align>
-inlinenoexcept +inline
@@ -701,57 +885,7 @@ template<std::size_t Len, std::size_t Align>

Returns the type of the contained object.

Returns
The type of the contained object, if any.
-

Definition at line 251 of file any.hpp.

- - - -

Friends And Related Function Documentation

- -

◆ swap

- -
-
-
-template<std::size_t Len, std::size_t Align>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void swap (basic_any< Len, Align > & lhs,
basic_any< Len, Align > & rhs 
)
-
-friend
-
- -

Swaps two any objects.

-
Parameters
- - - -
lhsA valid any object.
rhsA valid any object.
-
-
- -

Definition at line 308 of file any.hpp.

+

Definition at line 275 of file any.hpp.

@@ -761,7 +895,7 @@ template<std::size_t Len, std::size_t Align> diff --git a/classentt_1_1basic__continuous__loader-members.html b/classentt_1_1basic__continuous__loader-members.html index b9c134712..09bf0c1d9 100644 --- a/classentt_1_1basic__continuous__loader-members.html +++ b/classentt_1_1basic__continuous__loader-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -73,20 +73,20 @@ $(function() {

This is the complete list of members for entt::basic_continuous_loader< Entity >, including all inherited members.

- + - + - +
basic_continuous_loader(basic_registry< entity_type > &source) noexceptentt::basic_continuous_loader< Entity >inline
basic_continuous_loader(basic_registry< entity_type > &source)entt::basic_continuous_loader< Entity >inline
basic_continuous_loader(basic_continuous_loader &&)=defaultentt::basic_continuous_loader< Entity >
component(Archive &archive, Member Type::*... member)entt::basic_continuous_loader< Entity >inline
contains(entity_type entt) const noexceptentt::basic_continuous_loader< Entity >inline
contains(entity_type entt) constentt::basic_continuous_loader< Entity >inline
entities(Archive &archive)entt::basic_continuous_loader< Entity >inline
entity_type typedefentt::basic_continuous_loader< Entity >
map(entity_type entt) const noexceptentt::basic_continuous_loader< Entity >inline
map(entity_type entt) constentt::basic_continuous_loader< Entity >inline
operator=(basic_continuous_loader &&)=defaultentt::basic_continuous_loader< Entity >
orphans()entt::basic_continuous_loader< Entity >inline
shrink()entt::basic_continuous_loader< Entity >inline
diff --git a/classentt_1_1basic__continuous__loader.html b/classentt_1_1basic__continuous__loader.html index c604b5221..dd92b47a5 100644 --- a/classentt_1_1basic__continuous__loader.html +++ b/classentt_1_1basic__continuous__loader.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_continuous_loader< Entity > Class Template Reference @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -89,9 +89,9 @@ using 

Public Member Functions

basic_continuous_loader (basic_registry< entity_type > &source) noexcept - Constructs an instance that is bound to a given registry. More...
-  + basic_continuous_loader (basic_registry< entity_type > &source) + Constructs an instance that is bound to a given registry. More...
 basic_continuous_loader (basic_continuous_loader &&)=default  Default move constructor.
@@ -113,12 +113,12 @@ Public Member Functions basic_continuous_loaderorphans ()  Destroys those entities that have no components. More...
  -bool contains (entity_type entt) const noexcept - Tests if a loader knows about a given entity. More...
-  -entity_type map (entity_type entt) const noexcept - Returns the identifier to which an entity refers. More...
-  +bool contains (entity_type entt) const + Tests if a loader knows about a given entity. More...
+  +entity_type map (entity_type entt) const + Returns the identifier to which an entity refers. More...

Detailed Description

template<typename Entity>
@@ -130,15 +130,15 @@ class entt::basic_continuous_loader< Entity >

An example of use is the implementation of a client-server applications with the requirement of transferring somehow parts of the representation side to side.

Template Parameters
- +
EntityA valid entity type (see entt_traits for more details).
EntityA valid entity type (see entt_traits for more details).

Definition at line 304 of file snapshot.hpp.

Constructor & Destructor Documentation

- -

◆ basic_continuous_loader()

+ +

◆ basic_continuous_loader()

@@ -158,7 +158,7 @@ template<typename Entity >
-inlinenoexcept +inline
@@ -239,8 +239,8 @@ template<typename... Component, typename Archive , typename... Type, typename
- -

◆ contains()

+ +

◆ contains()

@@ -260,7 +260,7 @@ template<typename Entity >
-inlinenoexcept +inline
@@ -326,8 +326,8 @@ template<typename Archive >
- -

◆ map()

+ +

◆ map()

@@ -347,7 +347,7 @@ template<typename Entity >
-inlinenoexcept +inline
@@ -470,7 +470,7 @@ template<typename Entity >
diff --git a/classentt_1_1basic__group.html b/classentt_1_1basic__group.html index 62d7d10e2..fc02a44ba 100644 --- a/classentt_1_1basic__group.html +++ b/classentt_1_1basic__group.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_group<... > Class Template Reference @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -80,14 +80,14 @@ class entt::basic_group<... >

Group.

Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

-

Definition at line 32 of file fwd.hpp.

+

Definition at line 33 of file fwd.hpp.


The documentation for this class was generated from the following file: diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html index 8cd71337d..f6d210e73 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_1aada3a14110654dc27700c17c9c2396.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > Class Template Reference @@ -22,7 +22,7 @@
EnTT -  3.7.0 +  3.8.0
@@ -30,10 +30,10 @@ - + @@ -92,61 +92,65 @@ using size_type = std::size_t  Unsigned integer type.
  - -using iterator = typename basic_sparse_set< Entity >::iterator - Random access iterator type.
-  - -using reverse_iterator = typename basic_sparse_set< Entity >::reverse_iterator - Reversed iterator type.
-  + +using iterator = typename basic_common_type::iterator + Random access iterator type.
+  + +using reverse_iterator = typename basic_common_type::reverse_iterator + Reversed iterator type.
+  + +using iterable_group = iterable + Iterable group type.
+  - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + @@ -158,9 +162,9 @@ Public Member Functions - - - + + + @@ -197,7 +201,7 @@ class entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get
Warning
Lifetime of a group must not overcome that of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
Template Parameters

Public Member Functions

basic_group () noexcept
 Default constructor to use to create empty, invalid groups.
 
size_type size () const noexcept
 Returns the number of entities that have the given components. More...
 
bool empty () const noexcept
 Checks whether a group is empty. More...
 
template<typename Component >
Component * raw () const noexcept
 Direct access to the list of components of a given pool. More...
 
const entity_typedata () const noexcept
 Direct access to the list of entities. More...
 
iterator begin () const noexcept
 Returns an iterator to the first entity of the group. More...
 
iterator end () const noexcept
 Returns an iterator that is past the last entity of the group. More...
 
reverse_iterator rbegin () const noexcept
 Returns an iterator to the first entity of the reversed group. More...
 
reverse_iterator rend () const noexcept
 Returns an iterator that is past the last entity of the reversed group. More...
 
basic_group ()
 Default constructor to use to create empty, invalid groups.
 
size_type size () const
 Returns the number of entities that have the given components. More...
 
bool empty () const
 Checks whether a group is empty. More...
 
template<typename Component >
auto raw () const
 Direct access to the raw representation offered by the storage. More...
 
auto data () const
 Direct access to the list of entities. More...
 
iterator begin () const
 Returns an iterator to the first entity of the group. More...
 
iterator end () const
 Returns an iterator that is past the last entity of the group. More...
 
reverse_iterator rbegin () const
 Returns an iterator to the first entity of the reversed group. More...
 
reverse_iterator rend () const
 Returns an iterator that is past the last entity of the reversed group. More...
 
entity_type front () const
 Returns the first entity of the group, if any. More...
 
entity_type back () const
 Returns the last entity of the group, if any. More...
 
iterator find (const entity_type entt) const
iterator find (const entity_type entt) const
 Finds an entity. More...
 
entity_type operator[] (const size_type pos) const
 Returns the identifier that occupies the given position. More...
 
 operator bool () const noexcept
 Checks if a group is properly initialized. More...
 
 operator bool () const
 Checks if a group is properly initialized. More...
 
bool contains (const entity_type entt) const
 Checks if a group contains an entity. More...
 
void each (Func func) const
 Iterates entities and components and applies the given function object to them. More...
 
iterable_group each () const noexcept
 Returns an iterable object to use to visit the group. More...
 
iterable_group each () const
 Returns an iterable object to use to visit the group. More...
 
template<typename... Component, typename Compare , typename Sort = std_sort, typename... Args>
void sort (Compare compare, Sort algo=Sort{}, Args &&... args) const
 Sort a group according to the given comparison function. More...
- + @@ -205,7 +209,7 @@ class entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get -

Definition at line 533 of file group.hpp.

+

Definition at line 532 of file group.hpp.

Member Function Documentation

◆ back()

@@ -235,12 +239,12 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

Returns the last entity of the group, if any.

Returns
The last entity of the group if one exists, the null entity otherwise.
-

Definition at line 783 of file group.hpp.

+

Definition at line 777 of file group.hpp.

- -

◆ begin()

+ +

◆ begin()

@@ -251,7 +255,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
+inline
EntityA valid entity type (see entt_traits for more details).
EntityA valid entity type (see entt_traits for more details).
ExcludeTypes of components used to filter the group.
GetTypes of components observed by the group.
OwnedTypes of components owned by the group.
- + @@ -259,16 +263,16 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::begin iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::begin ( ) const
-inlinenoexcept

Returns an iterator to the first entity of the group.

-

The returned iterator points to the first entity of the group. If the group is empty, the returned iterator will be equal to end().

+

The returned iterator points to the first entity of the group. If the group is empty, the returned iterator will be equal to end().

Returns
An iterator to the first entity of the group.
-

Definition at line 723 of file group.hpp.

+

Definition at line 717 of file group.hpp.

@@ -307,12 +311,12 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
Returns
True if the group contains the given entity, false otherwise.
-

Definition at line 821 of file group.hpp.

+

Definition at line 815 of file group.hpp.

- -

◆ data()

+ +

◆ data()

@@ -323,7 +327,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... - + @@ -331,21 +335,21 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
const entity_type* entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::data auto entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::data ( ) const
-inlinenoexcept +inline

Direct access to the list of entities.

-

The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

+

The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

Returns
A pointer to the array of entities.
-

Definition at line 711 of file group.hpp.

+

Definition at line 705 of file group.hpp.

- -

◆ each() [1/2]

+ +

◆ each() [1/2]

@@ -356,7 +360,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... - + @@ -364,7 +368,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
iterable_group entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::each iterable_group entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::each ( ) const
-inlinenoexcept +inline
@@ -374,7 +378,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Returns
An iterable object to use to visit the group.
-

Definition at line 899 of file group.hpp.

+

Definition at line 893 of file group.hpp.

@@ -411,6 +415,7 @@ template<typename Func > The signature of the function must be equivalent to one of the following forms:

void(const entity_type, Type &...);
void(Type &...);
+
Entity entity_type
Underlying entity identifier.
Definition: group.hpp:650
Note
Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
Template Parameters
@@ -425,12 +430,12 @@ template<typename Func > -

Definition at line 876 of file group.hpp.

+

Definition at line 870 of file group.hpp.

- -

◆ empty()

+ +

◆ empty()

@@ -449,7 +454,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
-inlinenoexcept +inline
@@ -457,12 +462,12 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

Checks whether a group is empty.

Returns
True if the group is empty, false otherwise.
-

Definition at line 679 of file group.hpp.

+

Definition at line 677 of file group.hpp.

- -

◆ end()

+ +

◆ end()

@@ -473,7 +478,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... - + @@ -481,7 +486,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::end iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::end ( ) const
-inlinenoexcept +inline
@@ -490,7 +495,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

The returned iterator points to the entity following the last entity of the group. Attempting to dereference the returned iterator results in undefined behavior.

Returns
An iterator to the entity following the last entity of the group.
-

Definition at line 737 of file group.hpp.

+

Definition at line 731 of file group.hpp.

@@ -506,7 +511,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... - + @@ -529,7 +534,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
Returns
An iterator to the given entity if it's found, past the end iterator otherwise.
-

Definition at line 794 of file group.hpp.

+

Definition at line 788 of file group.hpp.

@@ -561,7 +566,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

Returns the first entity of the group, if any.

Returns
The first entity of the group if one exists, the null entity otherwise.
-

Definition at line 773 of file group.hpp.

+

Definition at line 767 of file group.hpp.

@@ -610,12 +615,12 @@ template<typename... Component>
Returns
The components assigned to the entity.
-

Definition at line 841 of file group.hpp.

+

Definition at line 835 of file group.hpp.

- -

◆ operator bool()

+ +

◆ operator bool()

@@ -634,7 +639,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::find iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::find ( const entity_type  entt)
-inlineexplicitnoexcept +inlineexplicit
@@ -642,7 +647,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

Checks if a group is properly initialized.

Returns
True if the group is properly initialized, false otherwise.
-

Definition at line 812 of file group.hpp.

+

Definition at line 806 of file group.hpp.

@@ -681,12 +686,12 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
Returns
The identifier that occupies the given position.
-

Definition at line 804 of file group.hpp.

+

Definition at line 798 of file group.hpp.

- -

◆ raw()

+ +

◆ raw()

@@ -699,7 +704,7 @@ template<typename Component >
- + @@ -707,14 +712,12 @@ template<typename Component >
Component* entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::raw auto entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::raw ( ) const
-inlinenoexcept +inline
-

Direct access to the list of components of a given pool.

-

The returned pointer is such that range [raw<Component>(), raw<Component>() + size()) is always a valid range, even if the container is empty.
-

+

Direct access to the raw representation offered by the storage.

Warning
This function is only available for owned types.
Template Parameters
@@ -724,12 +727,12 @@ template<typename Component >
Returns
A pointer to the array of components.
-

Definition at line 697 of file group.hpp.

+

Definition at line 691 of file group.hpp.

- -

◆ rbegin()

+ +

◆ rbegin()

@@ -740,7 +743,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
+inline
- + @@ -748,21 +751,21 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::rbegin reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::rbegin ( ) const
-inlinenoexcept

Returns an iterator to the first entity of the reversed group.

-

The returned iterator points to the first entity of the reversed group. If the group is empty, the returned iterator will be equal to rend().

+

The returned iterator points to the first entity of the reversed group. If the group is empty, the returned iterator will be equal to rend().

Returns
An iterator to the first entity of the reversed group.
-

Definition at line 749 of file group.hpp.

+

Definition at line 743 of file group.hpp.

- -

◆ rend()

+ +

◆ rend()

@@ -773,7 +776,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... - + @@ -781,7 +784,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...
reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::rend reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::rend ( ) const
-inlinenoexcept +inline
@@ -790,12 +793,12 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

The returned iterator points to the entity following the last entity of the reversed group. Attempting to dereference the returned iterator results in undefined behavior.

Returns
An iterator to the entity following the last entity of the reversed group.
-

Definition at line 764 of file group.hpp.

+

Definition at line 758 of file group.hpp.

- -

◆ size()

+ +

◆ size()

@@ -814,7 +817,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename... -inlinenoexcept +inline
@@ -822,7 +825,7 @@ template<typename Entity , typename... Exclude, typename... Get, typename...

Returns the number of entities that have the given components.

Returns
Number of entities that have the given components.
-

Definition at line 671 of file group.hpp.

+

Definition at line 669 of file group.hpp.

@@ -902,7 +905,7 @@ template<typename... Component, typename Compare , typename Sort = std_sort, -

Definition at line 941 of file group.hpp.

+

Definition at line 935 of file group.hpp.

@@ -910,10 +913,9 @@ template<typename... Component, typename Compare , typename Sort = std_sort,
  • src/entt/entity/group.hpp
  • -
    entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: group.hpp:654
    diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html index 1278a9818..7df985a04 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,35 +74,36 @@ $(function() {

    This is the complete list of members for entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >, including all inherited members.

    - + - - + + - + - - - + + + - - - - - - - - - - - + + + + + + + + + + + +
    back() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    basic_group() noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    basic_group()entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    basic_registry< Entity > classentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >friend
    begin() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    capacity() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    begin() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    capacity() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    contains(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    data() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    data() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    each(Func func) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    each() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    empty() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    end() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    each() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    empty() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    end() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    entity_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    find(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    front() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    get(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    operator bool() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inlineexplicit
    operator[](const size_type pos) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    rbegin() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    rend() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    reverse_iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    shrink_to_fit()entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    size() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    size_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    sort() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    iterable_group typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    operator bool() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inlineexplicit
    operator[](const size_type pos) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    rbegin() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    rend() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    reverse_iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    shrink_to_fit()entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    size() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    size_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    sort() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >inline
    diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html index 51bcba6a4..18d5d8abf 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -92,64 +92,68 @@ using size_type = std::size_t  Unsigned integer type.
      - -using iterator = typename basic_sparse_set< Entity >::iterator - Random access iterator type.
    -  - -using reverse_iterator = typename basic_sparse_set< Entity >::reverse_iterator - Reversed iterator type.
    -  + +using iterator = typename basic_common_type::iterator + Random access iterator type.
    +  + +using reverse_iterator = typename basic_common_type::reverse_iterator + Reversed iterator type.
    +  + +using iterable_group = iterable + Iterable group type.
    +  - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - + + + @@ -161,9 +165,9 @@ void  - - - + + + @@ -199,7 +203,7 @@ class entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get
    Warning
    Lifetime of a group must not overcome that of the registry that generated it. In any other case, attempting to use a group results in undefined behavior.
    Template Parameters

    Public Member Functions

    basic_group () noexcept
     Default constructor to use to create empty, invalid groups.
     
    size_type size () const noexcept
     Returns the number of entities that have the given components. More...
     
    size_type capacity () const noexcept
     Returns the number of elements that a group has currently allocated space for. More...
     
    basic_group ()
     Default constructor to use to create empty, invalid groups.
     
    size_type size () const
     Returns the number of entities that have the given components. More...
     
    size_type capacity () const
     Returns the number of elements that a group has currently allocated space for. More...
     
    void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    bool empty () const noexcept
     Checks whether a group is empty. More...
     
    const entity_typedata () const noexcept
     Direct access to the list of entities. More...
     
    iterator begin () const noexcept
     Returns an iterator to the first entity of the group. More...
     
    iterator end () const noexcept
     Returns an iterator that is past the last entity of the group. More...
     
    reverse_iterator rbegin () const noexcept
     Returns an iterator to the first entity of the reversed group. More...
     
    reverse_iterator rend () const noexcept
     Returns an iterator that is past the last entity of the reversed group. More...
     
    bool empty () const
     Checks whether a group is empty. More...
     
    auto data () const
     Direct access to the list of entities. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the group. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the group. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed group. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed group. More...
     
    entity_type front () const
     Returns the first entity of the group, if any. More...
     
    entity_type back () const
     Returns the last entity of the group, if any. More...
     
    iterator find (const entity_type entt) const
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the identifier that occupies the given position. More...
     
     operator bool () const noexcept
     Checks if a group is properly initialized. More...
     
     operator bool () const
     Checks if a group is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a group contains an entity. More...
     
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_group each () const noexcept
     Returns an iterable object to use to visit the group. More...
     
    iterable_group each () const
     Returns an iterable object to use to visit the group. More...
     
    template<typename... Component, typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort a group according to the given comparison function. More...
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    ExcludeTypes of components used to filter the group.
    GetType of components observed by the group.
    @@ -236,12 +240,12 @@ template<typename Entity , typename... Exclude, typename... Get>

    Returns the last entity of the group, if any.

    Returns
    The last entity of the group if one exists, the null entity otherwise.
    -

    Definition at line 283 of file group.hpp.

    +

    Definition at line 282 of file group.hpp.

    - -

    ◆ begin()

    + +

    ◆ begin()

    @@ -252,7 +256,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -260,21 +264,21 @@ template<typename Entity , typename... Exclude, typename... Get>
    iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::begin iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::begin ( ) const
    -inlinenoexcept +inline

    Returns an iterator to the first entity of the group.

    -

    The returned iterator points to the first entity of the group. If the group is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first entity of the group. If the group is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first entity of the group.
    -

    Definition at line 223 of file group.hpp.

    +

    Definition at line 222 of file group.hpp.

    - -

    ◆ capacity()

    + +

    ◆ capacity()

    @@ -293,7 +297,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    -inlinenoexcept +inline
    @@ -301,7 +305,7 @@ template<typename Entity , typename... Exclude, typename... Get>

    Returns the number of elements that a group has currently allocated space for.

    Returns
    Capacity of the group.
    -

    Definition at line 184 of file group.hpp.

    +

    Definition at line 183 of file group.hpp.

    @@ -340,12 +344,12 @@ template<typename Entity , typename... Exclude, typename... Get>
    Returns
    True if the group contains the given entity, false otherwise.
    -

    Definition at line 321 of file group.hpp.

    +

    Definition at line 320 of file group.hpp.

    - -

    ◆ data()

    + +

    ◆ data()

    @@ -356,7 +360,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -364,21 +368,21 @@ template<typename Entity , typename... Exclude, typename... Get>
    const entity_type* entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::data auto entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::data ( ) const
    -inlinenoexcept +inline

    Direct access to the list of entities.

    -

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    Returns
    A pointer to the array of entities.
    -

    Definition at line 211 of file group.hpp.

    +

    Definition at line 210 of file group.hpp.

    - -

    ◆ each() [1/2]

    + +

    ◆ each() [1/2]

    @@ -389,7 +393,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -397,7 +401,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    iterable_group entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::each iterable_group entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::each ( ) const
    -inlinenoexcept +inline
    @@ -407,7 +411,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    Returns
    An iterable object to use to visit the group.
    -

    Definition at line 399 of file group.hpp.

    +

    Definition at line 398 of file group.hpp.

    @@ -444,6 +448,7 @@ template<typename Func > The signature of the function must be equivalent to one of the following forms:

    void(const entity_type, Type &...);
    void(Type &...);
    +
    Entity entity_type
    Underlying entity identifier.
    Definition: group.hpp:155
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    Template Parameters
    @@ -458,12 +463,12 @@ template<typename Func > -

    Definition at line 376 of file group.hpp.

    +

    Definition at line 375 of file group.hpp.

    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -482,7 +487,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    -inlinenoexcept +inline
    @@ -490,12 +495,12 @@ template<typename Entity , typename... Exclude, typename... Get>

    Checks whether a group is empty.

    Returns
    True if the group is empty, false otherwise.
    -

    Definition at line 199 of file group.hpp.

    +

    Definition at line 198 of file group.hpp.

    - -

    ◆ end()

    + +

    ◆ end()

    @@ -506,7 +511,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -514,7 +519,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::end iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::end ( ) const
    -inlinenoexcept +inline
    @@ -523,7 +528,7 @@ template<typename Entity , typename... Exclude, typename... Get>

    The returned iterator points to the entity following the last entity of the group. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the entity following the last entity of the group.
    -

    Definition at line 237 of file group.hpp.

    +

    Definition at line 236 of file group.hpp.

    @@ -539,7 +544,7 @@ template<typename Entity , typename... Exclude, typename... Get> - + @@ -562,7 +567,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    -

    Definition at line 294 of file group.hpp.

    +

    Definition at line 293 of file group.hpp.

    @@ -594,7 +599,7 @@ template<typename Entity , typename... Exclude, typename... Get>

    Returns the first entity of the group, if any.

    Returns
    The first entity of the group if one exists, the null entity otherwise.
    -

    Definition at line 273 of file group.hpp.

    +

    Definition at line 272 of file group.hpp.

    @@ -643,12 +648,12 @@ template<typename... Component>
    Returns
    The components assigned to the entity.
    -

    Definition at line 341 of file group.hpp.

    +

    Definition at line 340 of file group.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -667,7 +672,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::find iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::find ( const entity_type  entt)
    -inlineexplicitnoexcept +inlineexplicit
    @@ -675,7 +680,7 @@ template<typename Entity , typename... Exclude, typename... Get>

    Checks if a group is properly initialized.

    Returns
    True if the group is properly initialized, false otherwise.
    -

    Definition at line 312 of file group.hpp.

    +

    Definition at line 311 of file group.hpp.

    @@ -714,12 +719,12 @@ template<typename Entity , typename... Exclude, typename... Get>
    Returns
    The identifier that occupies the given position.
    -

    Definition at line 304 of file group.hpp.

    +

    Definition at line 303 of file group.hpp.

    - -

    ◆ rbegin()

    + +

    ◆ rbegin()

    @@ -730,7 +735,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -738,21 +743,21 @@ template<typename Entity , typename... Exclude, typename... Get>
    reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::rbegin reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::rbegin ( ) const
    -inlinenoexcept +inline

    Returns an iterator to the first entity of the reversed group.

    -

    The returned iterator points to the first entity of the reversed group. If the group is empty, the returned iterator will be equal to rend().

    +

    The returned iterator points to the first entity of the reversed group. If the group is empty, the returned iterator will be equal to rend().

    Returns
    An iterator to the first entity of the reversed group.
    -

    Definition at line 249 of file group.hpp.

    +

    Definition at line 248 of file group.hpp.

    - -

    ◆ rend()

    + +

    ◆ rend()

    @@ -763,7 +768,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    - + @@ -771,7 +776,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::rend reverse_iterator entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::rend ( ) const
    -inlinenoexcept +inline
    @@ -780,12 +785,12 @@ template<typename Entity , typename... Exclude, typename... Get>

    The returned iterator points to the entity following the last entity of the reversed group. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the entity following the last entity of the reversed group.
    -

    Definition at line 264 of file group.hpp.

    +

    Definition at line 263 of file group.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    @@ -804,7 +809,7 @@ template<typename Entity , typename... Exclude, typename... Get>
    -inlinenoexcept +inline
    @@ -812,7 +817,7 @@ template<typename Entity , typename... Exclude, typename... Get>

    Returns the number of entities that have the given components.

    Returns
    Number of entities that have the given components.
    -

    Definition at line 175 of file group.hpp.

    +

    Definition at line 174 of file group.hpp.

    @@ -853,7 +858,7 @@ template<typename Component > -

    Definition at line 474 of file group.hpp.

    +

    Definition at line 473 of file group.hpp.

    @@ -933,7 +938,7 @@ template<typename... Component, typename Compare , typename Sort = std_sort, -

    Definition at line 440 of file group.hpp.

    +

    Definition at line 439 of file group.hpp.

    @@ -941,10 +946,9 @@ template<typename... Component, typename Compare , typename Sort = std_sort,
  • src/entt/entity/group.hpp
  • -
    entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: group.hpp:158
    diff --git a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html index e02551a9f..376e65333 100644 --- a/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html +++ b/classentt_1_1basic__group_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01get__t_3_01Get_9e8a2286698e49212830f433eb636a65.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,33 +74,34 @@ $(function() {

    This is the complete list of members for entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >, including all inherited members.

    - + - + - + - - - + + + - - - - - - - - - - + + + + + + + + + + +
    back() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    basic_group() noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    basic_group()entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    basic_registry< Entity > classentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >friend
    begin() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    begin() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    contains(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    data() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    data() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    each(Func func) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    each() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    empty() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    end() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    each() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    empty() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    end() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    entity_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    find(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    front() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    get(const entity_type entt) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    operator bool() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inlineexplicit
    operator[](const size_type pos) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    raw() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    rbegin() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    rend() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    reverse_iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    size() const noexceptentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    size_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    iterable_group typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    operator bool() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inlineexplicit
    operator[](const size_type pos) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    raw() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    rbegin() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    rend() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    reverse_iterator typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    size() constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    size_type typedefentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args) constentt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >inline
    diff --git a/classentt_1_1basic__hashed__string-members.html b/classentt_1_1basic__hashed__string-members.html index 5d4643af2..e9b3a091b 100644 --- a/classentt_1_1basic__hashed__string-members.html +++ b/classentt_1_1basic__hashed__string-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,23 +73,23 @@ $(function() {

    This is the complete list of members for entt::basic_hashed_string< Char >, including all inherited members.

    - - - - + + + + - - - - - - - + + + + + + +
    basic_hashed_string() noexceptentt::basic_hashed_string< Char >inline
    basic_hashed_string(const value_type(&curr)[N]) noexceptentt::basic_hashed_string< Char >inline
    basic_hashed_string(const_wrapper wrapper) noexceptentt::basic_hashed_string< Char >inlineexplicit
    data() const noexceptentt::basic_hashed_string< Char >inline
    basic_hashed_string()entt::basic_hashed_string< Char >inline
    basic_hashed_string(const value_type(&curr)[N])entt::basic_hashed_string< Char >inline
    basic_hashed_string(const_wrapper wrapper)entt::basic_hashed_string< Char >inlineexplicit
    data() constentt::basic_hashed_string< Char >inline
    hash_type typedefentt::basic_hashed_string< Char >
    operator const value_type *() const noexceptentt::basic_hashed_string< Char >inline
    operator hash_type() const noexceptentt::basic_hashed_string< Char >inline
    operator==(const basic_hashed_string &other) const noexceptentt::basic_hashed_string< Char >inline
    value(const value_type *str, std::size_t size) noexceptentt::basic_hashed_string< Char >inlinestatic
    value(const value_type(&str)[N]) noexceptentt::basic_hashed_string< Char >inlinestatic
    value(const_wrapper wrapper) noexceptentt::basic_hashed_string< Char >inlinestatic
    value() const noexceptentt::basic_hashed_string< Char >inline
    operator const value_type *() constentt::basic_hashed_string< Char >inline
    operator hash_type() constentt::basic_hashed_string< Char >inline
    operator==(const basic_hashed_string &other) constentt::basic_hashed_string< Char >inline
    value(const value_type *str, std::size_t size)entt::basic_hashed_string< Char >inlinestatic
    value(const value_type(&str)[N])entt::basic_hashed_string< Char >inlinestatic
    value(const_wrapper wrapper)entt::basic_hashed_string< Char >inlinestatic
    value() constentt::basic_hashed_string< Char >inline
    value_type typedefentt::basic_hashed_string< Char >
    diff --git a/classentt_1_1basic__hashed__string.html b/classentt_1_1basic__hashed__string.html index ef9d52302..9af48cd1b 100644 --- a/classentt_1_1basic__hashed__string.html +++ b/classentt_1_1basic__hashed__string.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_hashed_string< Char > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -95,45 +95,45 @@ using 

    Public Member Functions

    - -constexpr basic_hashed_string () noexcept - Constructs an empty hashed string.
    -  -template<std::size_t N> -constexpr basic_hashed_string (const value_type(&curr)[N]) noexcept - Constructs a hashed string from an array of const characters. More...
    -  -constexpr basic_hashed_string (const_wrapper wrapper) noexcept - Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *. More...
    -  -constexpr const value_typedata () const noexcept - Returns the human-readable representation of a hashed string. More...
    -  -constexpr hash_type value () const noexcept - Returns the numeric representation of a hashed string. More...
    -  -constexpr operator const value_type * () const noexcept - Returns the human-readable representation of a hashed string. More...
    -  -constexpr operator hash_type () const noexcept - Returns the numeric representation of a hashed string. More...
    -  -constexpr bool operator== (const basic_hashed_string &other) const noexcept - Compares two hashed strings. More...
    -  + +constexpr basic_hashed_string () + Constructs an empty hashed string.
    +  +template<std::size_t N> +constexpr basic_hashed_string (const value_type(&curr)[N]) + Constructs a hashed string from an array of const characters. More...
    +  +constexpr basic_hashed_string (const_wrapper wrapper) + Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_type *. More...
    +  +constexpr const value_typedata () const + Returns the human-readable representation of a hashed string. More...
    +  +constexpr hash_type value () const + Returns the numeric representation of a hashed string. More...
    +  +constexpr operator const value_type * () const + Returns the human-readable representation of a hashed string. More...
    +  +constexpr operator hash_type () const + Returns the numeric representation of a hashed string. More...
    +  +constexpr bool operator== (const basic_hashed_string &other) const + Compares two hashed strings. More...
    +  - - - - - - - - - - + + + + + + + + + +

    Static Public Member Functions

    static constexpr hash_type value (const value_type *str, std::size_t size) noexcept
     Returns directly the numeric representation of a string view. More...
     
    template<std::size_t N>
    static constexpr hash_type value (const value_type(&str)[N]) noexcept
     Returns directly the numeric representation of a string. More...
     
    static hash_type value (const_wrapper wrapper) noexcept
     Returns directly the numeric representation of a string. More...
     
    static constexpr hash_type value (const value_type *str, std::size_t size)
     Returns directly the numeric representation of a string view. More...
     
    template<std::size_t N>
    static constexpr hash_type value (const value_type(&str)[N])
     Returns directly the numeric representation of a string. More...
     
    static hash_type value (const_wrapper wrapper)
     Returns directly the numeric representation of a string. More...
     

    Detailed Description

    template<typename Char>
    @@ -151,8 +151,8 @@ class entt::basic_hashed_string< Char >

    Definition at line 64 of file hashed_string.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_hashed_string() [1/2]

    + +

    ◆ basic_hashed_string() [1/2]

    @@ -174,7 +174,7 @@ template<std::size_t N>
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -199,8 +199,8 @@ template<std::size_t N>
    - -

    ◆ basic_hashed_string() [2/2]

    + +

    ◆ basic_hashed_string() [2/2]

    @@ -220,7 +220,7 @@ template<typename Char >
    -inlineexplicitconstexprnoexcept +inlineexplicitconstexpr
    @@ -238,8 +238,8 @@ template<typename Char >

    Member Function Documentation

    - -

    ◆ data()

    + +

    ◆ data()

    @@ -258,7 +258,7 @@ template<typename Char >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -270,8 +270,8 @@ template<typename Char >
    - -

    ◆ operator const value_type *()

    + +

    ◆ operator const value_type *()

    @@ -290,7 +290,7 @@ template<typename Char >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -302,8 +302,8 @@ template<typename Char >
    - -

    ◆ operator hash_type()

    + +

    ◆ operator hash_type()

    @@ -322,7 +322,7 @@ template<typename Char >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -334,8 +334,8 @@ template<typename Char >
    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -355,7 +355,7 @@ template<typename Char >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -373,8 +373,8 @@ template<typename Char >
    - -

    ◆ value() [1/4]

    + +

    ◆ value() [1/4]

    @@ -393,7 +393,7 @@ template<typename Char >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -405,8 +405,8 @@ template<typename Char >
    - -

    ◆ value() [2/4]

    + +

    ◆ value() [2/4]

    @@ -436,7 +436,7 @@ template<typename Char >
    -inlinestaticconstexprnoexcept +inlinestaticconstexpr
    @@ -455,8 +455,8 @@ template<typename Char >
    - -

    ◆ value() [3/4]

    + +

    ◆ value() [3/4]

    @@ -478,14 +478,15 @@ template<std::size_t N>
    -inlinestaticconstexprnoexcept +inlinestaticconstexpr

    Returns directly the numeric representation of a string.

    Forcing template resolution avoids implicit conversions. An human-readable identifier can be anything but a plain, old bunch of characters.
    - Example of use:

    const auto value = basic_hashed_string<char>::to_value("my.png");
    + Example of use:

    const auto value = basic_hashed_string<char>::to_value("my.png");
    +
    constexpr hash_type value() const
    Returns the numeric representation of a hashed string.
    Template Parameters
    @@ -504,8 +505,8 @@ template<std::size_t N> - -

    ◆ value() [4/4]

    + +

    ◆ value() [4/4]

    @@ -525,7 +526,7 @@ template<typename Char >
    NNumber of characters of the identifier.
    -inlinestaticnoexcept +inlinestatic
    @@ -547,10 +548,9 @@ template<typename Char >
  • src/entt/core/hashed_string.hpp
  • -
    entt::basic_hashed_string::value
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    Definition: hashed_string.hpp:176
    diff --git a/classentt_1_1basic__observer-members.html b/classentt_1_1basic__observer-members.html index 36ce84332..081636739 100644 --- a/classentt_1_1basic__observer-members.html +++ b/classentt_1_1basic__observer-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,26 +77,26 @@ $(function() { basic_observer(const basic_observer &)=deleteentt::basic_observer< Entity > basic_observer(basic_observer &&)=deleteentt::basic_observer< Entity > basic_observer(basic_registry< entity_type > &reg, basic_collector< Matcher... >)entt::basic_observer< Entity >inline - begin() const noexceptentt::basic_observer< Entity >inline - clear() noexceptentt::basic_observer< Entity >inline + begin() constentt::basic_observer< Entity >inline + clear()entt::basic_observer< Entity >inline connect(basic_registry< entity_type > &reg, basic_collector< Matcher... >)entt::basic_observer< Entity >inline - data() const noexceptentt::basic_observer< Entity >inline + data() constentt::basic_observer< Entity >inline disconnect()entt::basic_observer< Entity >inline each(Func func) constentt::basic_observer< Entity >inline each(Func func)entt::basic_observer< Entity >inline - empty() const noexceptentt::basic_observer< Entity >inline - end() const noexceptentt::basic_observer< Entity >inline + empty() constentt::basic_observer< Entity >inline + end() constentt::basic_observer< Entity >inline entity_type typedefentt::basic_observer< Entity > iterator typedefentt::basic_observer< Entity > operator=(const basic_observer &)=deleteentt::basic_observer< Entity > operator=(basic_observer &&)=deleteentt::basic_observer< Entity > - size() const noexceptentt::basic_observer< Entity >inline + size() constentt::basic_observer< Entity >inline size_type typedefentt::basic_observer< Entity > ~basic_observer()=defaultentt::basic_observer< Entity > diff --git a/classentt_1_1basic__observer.html b/classentt_1_1basic__observer.html index f473a2e16..8e97e3bb2 100644 --- a/classentt_1_1basic__observer.html +++ b/classentt_1_1basic__observer.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_observer< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -132,25 +132,25 @@ Public Member Functions void disconnect ()  Disconnects an observer from the registry it keeps track of.
      -size_type size () const noexcept - Returns the number of elements in an observer. More...
    -  -bool empty () const noexcept - Checks whether an observer is empty. More...
    -  -const entity_typedata () const noexcept - Direct access to the list of entities of the observer. More...
    -  -iterator begin () const noexcept - Returns an iterator to the first entity of the observer. More...
    -  -iterator end () const noexcept - Returns an iterator that is past the last entity of the observer. More...
    -  - -void clear () noexcept - Clears the underlying container.
    -  +size_type size () const + Returns the number of elements in an observer. More...
    +  +bool empty () const + Checks whether an observer is empty. More...
    +  +const entity_typedata () const + Direct access to the list of entities of the observer. More...
    +  +iterator begin () const + Returns an iterator to the first entity of the observer. More...
    +  +iterator end () const + Returns an iterator that is past the last entity of the observer. More...
    +  + +void clear () + Clears the underlying container.
    +  template<typename Func > void each (Func func) const  Iterates entities and applies the given function object to them. More...
    @@ -186,7 +186,7 @@ class entt::basic_observer< Entity >
    Warning
    Lifetime of an observer doesn't necessarily have to overcome that of the registry to which it is connected. However, the observer must be disconnected from the registry before being destroyed to avoid crashes due to dangling pointers.
    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -250,8 +250,8 @@ template<typename... Matcher>

    Member Function Documentation

    - -

    ◆ begin()

    + +

    ◆ begin()

    @@ -270,13 +270,13 @@ template<typename Entity >
    -inlinenoexcept +inline

    Returns an iterator to the first entity of the observer.

    -

    The returned iterator points to the first entity of the observer. If the container is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first entity of the observer. If the container is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first entity of the observer.

    Definition at line 379 of file observer.hpp.

    @@ -339,8 +339,8 @@ template<typename... Matcher>
    - -

    ◆ data()

    + +

    ◆ data()

    @@ -359,13 +359,13 @@ template<typename Entity >
    -inlinenoexcept +inline

    Direct access to the list of entities of the observer.

    -

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    Note
    Entities are in the reverse order as returned by the begin/end iterators.
    Returns
    A pointer to the array of entities.
    @@ -452,6 +452,7 @@ template<typename Func >

    The function object is invoked for each entity.
    The signature of the function must be equivalent to the following form:

    void(const entity_type);
    +
    Entity entity_type
    Underlying entity identifier.
    Definition: observer.hpp:275
    Template Parameters
    @@ -469,8 +470,8 @@ template<typename Func > - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -489,7 +490,7 @@ template<typename Entity >
    FuncType of the function object to invoke.
    -inlinenoexcept +inline
    @@ -501,8 +502,8 @@ template<typename Entity >
    - -

    ◆ end()

    + +

    ◆ end()

    @@ -521,7 +522,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -596,8 +597,8 @@ template<typename Entity >
    - -

    ◆ size()

    + +

    ◆ size()

    @@ -616,7 +617,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -633,10 +634,9 @@ template<typename Entity >
  • src/entt/entity/observer.hpp
  • -
    Entity entity_type
    Underlying entity identifier.
    Definition: observer.hpp:275
    diff --git a/classentt_1_1basic__organizer-members.html b/classentt_1_1basic__organizer-members.html index 21cca2eae..17c1c8697 100644 --- a/classentt_1_1basic__organizer-members.html +++ b/classentt_1_1basic__organizer-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -84,7 +84,7 @@ $(function() { diff --git a/classentt_1_1basic__organizer.html b/classentt_1_1basic__organizer.html index f61ba8dae..6d0f99afe 100644 --- a/classentt_1_1basic__organizer.html +++ b/classentt_1_1basic__organizer.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_organizer< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -133,7 +133,7 @@ class entt::basic_organizer< Entity > Note that the resulting tasks aren't executed in any case. This isn't the goal of the tool. Instead, they are returned to the user in the form of a graph that allows for safe execution.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -349,7 +349,7 @@ template<typename Entity > diff --git a/classentt_1_1basic__poly-members.html b/classentt_1_1basic__poly-members.html index 945edbc94..d68338ffe 100644 --- a/classentt_1_1basic__poly-members.html +++ b/classentt_1_1basic__poly-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,30 +73,29 @@ $(function() {

    This is the complete list of members for entt::basic_poly< Concept, Len, Align >, including all inherited members.

    - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +
    as_ref() noexceptentt::basic_poly< Concept, Len, Align >inline
    as_ref() const noexceptentt::basic_poly< Concept, Len, Align >inline
    basic_poly() noexceptentt::basic_poly< Concept, Len, Align >inline
    as_ref()entt::basic_poly< Concept, Len, Align >inline
    as_ref() constentt::basic_poly< Concept, Len, Align >inline
    basic_poly()entt::basic_poly< Concept, Len, Align >inline
    basic_poly(std::in_place_type_t< Type >, Args &&... args)entt::basic_poly< Concept, Len, Align >inlineexplicit
    basic_poly(std::reference_wrapper< Type > value)entt::basic_poly< Concept, Len, Align >inline
    basic_poly(Type &&value) noexceptentt::basic_poly< Concept, Len, Align >inline
    basic_poly(const basic_poly &other)=defaultentt::basic_poly< Concept, Len, Align >
    basic_poly(basic_poly &&other) noexceptentt::basic_poly< Concept, Len, Align >inline
    concept_type typedefentt::basic_poly< Concept, Len, Align >
    data() const noexceptentt::basic_poly< Concept, Len, Align >inline
    data() noexceptentt::basic_poly< Concept, Len, Align >inline
    emplace(Args &&... args)entt::basic_poly< Concept, Len, Align >inline
    operator bool() const noexceptentt::basic_poly< Concept, Len, Align >inlineexplicit
    operator->() noexceptentt::basic_poly< Concept, Len, Align >inline
    operator->() const noexceptentt::basic_poly< Concept, Len, Align >inline
    operator=(basic_poly other)entt::basic_poly< Concept, Len, Align >inline
    poly_base< basic_poly >entt::basic_poly< Concept, Len, Align >friend
    reset()entt::basic_poly< Concept, Len, Align >inline
    swap(basic_poly &lhs, basic_poly &rhs)entt::basic_poly< Concept, Len, Align >friend
    type() const noexceptentt::basic_poly< Concept, Len, Align >inline
    basic_poly(Type &&value)entt::basic_poly< Concept, Len, Align >inline
    basic_poly(const basic_poly &other)=defaultentt::basic_poly< Concept, Len, Align >
    basic_poly(basic_poly &&other)entt::basic_poly< Concept, Len, Align >inline
    concept_type typedefentt::basic_poly< Concept, Len, Align >
    data() constentt::basic_poly< Concept, Len, Align >inline
    data()entt::basic_poly< Concept, Len, Align >inline
    emplace(Args &&... args)entt::basic_poly< Concept, Len, Align >inline
    operator bool() constentt::basic_poly< Concept, Len, Align >inlineexplicit
    operator->()entt::basic_poly< Concept, Len, Align >inline
    operator->() constentt::basic_poly< Concept, Len, Align >inline
    operator=(basic_poly other)entt::basic_poly< Concept, Len, Align >inline
    poly_base< basic_poly >entt::basic_poly< Concept, Len, Align >friend
    reset()entt::basic_poly< Concept, Len, Align >inline
    swap(basic_poly &lhs, basic_poly &rhs)entt::basic_poly< Concept, Len, Align >friend
    type() constentt::basic_poly< Concept, Len, Align >inline
    diff --git a/classentt_1_1basic__poly.html b/classentt_1_1basic__poly.html index 900b61283..0952f9bad 100644 --- a/classentt_1_1basic__poly.html +++ b/classentt_1_1basic__poly.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_poly< Concept, Len, Align > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,50 +80,64 @@ $(function() { More...

    #include <poly.hpp>

    +
    +Inheritance diagram for entt::basic_poly< Concept, Len, Align >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_poly< Concept, Len, Align >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +using 

    Public Types

    -using concept_type = typename Concept::template type< poly_base< basic_poly > >
    concept_type = typename Concept::template type< poly_base< basic_poly > >
     Concept type.
     
    - - - + + + - - - - - - - - + + + + - - - + + + - - - - - - - - - + + + + + + + + + @@ -132,21 +146,21 @@ Public Member Functions void  - - - - - - - - - - - - - - - + + + + + + + + + + + + + + +

    Public Member Functions

    basic_poly () noexcept
     Default constructor.
     
    basic_poly ()
     Default constructor.
     
    template<typename Type , typename... Args>
     basic_poly (std::in_place_type_t< Type >, Args &&... args)
     Constructs a poly by directly initializing the new object. More...
     
    template<typename Type >
     basic_poly (std::reference_wrapper< Type > value)
     Constructs a poly that holds an unmanaged object. More...
     
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
     basic_poly (Type &&value) noexcept
     Constructs a poly from a given value. More...
     
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, basic_poly>>>
     basic_poly (Type &&value)
     Constructs a poly from a given value. More...
     
     basic_poly (const basic_poly &other)=default
     Copy constructor. More...
     
     basic_poly (basic_poly &&other) noexcept
     Move constructor. More...
     
     basic_poly (basic_poly &&other)
     Move constructor. More...
     
    basic_polyoperator= (basic_poly other)
     Assignment operator. More...
     
    type_info type () const noexcept
     Returns the type of the contained object. More...
     
    const void * data () const noexcept
     Returns an opaque pointer to the contained instance. More...
     
    void * data () noexcept
     Returns an opaque pointer to the contained instance. More...
     
    type_info type () const
     Returns the type of the contained object. More...
     
    const void * data () const
     Returns an opaque pointer to the contained instance. More...
     
    void * data ()
     Returns an opaque pointer to the contained instance. More...
     
    template<typename Type , typename... Args>
    void emplace (Args &&... args)
     Replaces the contained object by creating a new instance directly. More...
    reset ()
     Destroys contained object.
     
     operator bool () const noexcept
     Returns false if a poly is empty, true otherwise. More...
     
    concept_typeoperator-> () noexcept
     Returns a pointer to the underlying concept. More...
     
    const concept_typeoperator-> () const noexcept
     Returns a pointer to the underlying concept. More...
     
    basic_poly as_ref () noexcept
     Aliasing constructor. More...
     
    basic_poly as_ref () const noexcept
     Aliasing constructor. More...
     
     operator bool () const
     Returns false if a poly is empty, true otherwise. More...
     
    concept_typeoperator-> ()
     Returns a pointer to the underlying concept. More...
     
    const concept_typeoperator-> () const
     Returns a pointer to the underlying concept. More...
     
    basic_poly as_ref ()
     Aliasing constructor. More...
     
    basic_poly as_ref () const
     Aliasing constructor. More...
     
    @@ -179,7 +193,7 @@ class entt::basic_poly< Concept, Len, Align >

    Definition at line 181 of file poly.hpp.

    Constructor & Destructor Documentation

    -

    ◆ basic_poly() [1/5]

    +

    ◆ basic_poly() [1/4]

    @@ -235,54 +249,8 @@ template<typename Type , typename... Args>
    - -

    ◆ basic_poly() [2/5]

    - -
    -
    -
    -template<typename Concept , std::size_t Len, std::size_t Align>
    -
    -template<typename Type >
    -

    Friends

    - - - - -
    - - - - - - - - -
    entt::basic_poly< Concept, Len, Align >::basic_poly (std::reference_wrapper< Type > value)
    -
    -inline
    -
    - -

    Constructs a poly that holds an unmanaged object.

    -
    Template Parameters
    - - -
    TypeType of object to use to initialize the poly.
    -
    -
    -
    Parameters
    - - -
    valueAn instance of an object to use to initialize the poly.
    -
    -
    - -

    Definition at line 215 of file poly.hpp.

    - -
    - - -

    ◆ basic_poly() [3/5]

    + +

    ◆ basic_poly() [2/4]

    @@ -304,7 +272,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -inlinenoexcept +inline
    @@ -323,12 +291,12 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s
    -

    Definition at line 225 of file poly.hpp.

    +

    Definition at line 215 of file poly.hpp.

    -

    ◆ basic_poly() [4/5]

    +

    ◆ basic_poly() [3/4]

    @@ -363,8 +331,8 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    - -

    ◆ basic_poly() [5/5]

    + +

    ◆ basic_poly() [4/4]

    @@ -384,7 +352,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -397,45 +365,13 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -

    Definition at line 239 of file poly.hpp.

    +

    Definition at line 229 of file poly.hpp.

    Member Function Documentation

    - -

    ◆ as_ref() [1/2]

    - -
    -
    -
    -template<typename Concept , std::size_t Len, std::size_t Align>
    - - - - - -
    - - - - - - - -
    basic_poly entt::basic_poly< Concept, Len, Align >::as_ref () const
    -
    -inlinenoexcept
    -
    - -

    Aliasing constructor.

    -
    Returns
    A poly that shares a reference to an unmanaged object.
    - -

    Definition at line 335 of file poly.hpp.

    - -
    -
    - -

    ◆ as_ref() [2/2]

    + +

    ◆ as_ref() [1/2]

    @@ -454,7 +390,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -462,12 +398,12 @@ template<typename Concept , std::size_t Len, std::size_t Align>

    Aliasing constructor.

    Returns
    A poly that shares a reference to an unmanaged object.
    -

    Definition at line 328 of file poly.hpp.

    +

    Definition at line 318 of file poly.hpp.

    - -

    ◆ data() [1/2]

    + +

    ◆ as_ref() [2/2]

    @@ -478,7 +414,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    - + @@ -486,20 +422,20 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    const void* entt::basic_poly< Concept, Len, Align >::data basic_poly entt::basic_poly< Concept, Len, Align >::as_ref ( ) const
    -inlinenoexcept +inline
    -

    Returns an opaque pointer to the contained instance.

    -
    Returns
    An opaque pointer the contained instance, if any.
    +

    Aliasing constructor.

    +
    Returns
    A poly that shares a reference to an unmanaged object.
    -

    Definition at line 267 of file poly.hpp.

    +

    Definition at line 325 of file poly.hpp.

    - -

    ◆ data() [2/2]

    + +

    ◆ data() [1/2]

    @@ -518,7 +454,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -526,7 +462,39 @@ template<typename Concept , std::size_t Len, std::size_t Align>

    Returns an opaque pointer to the contained instance.

    Returns
    An opaque pointer the contained instance, if any.
    -

    Definition at line 272 of file poly.hpp.

    +

    Definition at line 262 of file poly.hpp.

    + + + + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<typename Concept , std::size_t Len, std::size_t Align>
    + + + + + +
    + + + + + + + +
    const void* entt::basic_poly< Concept, Len, Align >::data () const
    +
    +inline
    +
    + +

    Returns an opaque pointer to the contained instance.

    +
    Returns
    An opaque pointer the contained instance, if any.
    + +

    Definition at line 257 of file poly.hpp.

    @@ -573,12 +541,12 @@ template<typename Type , typename... Args> -

    Definition at line 283 of file poly.hpp.

    +

    Definition at line 273 of file poly.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -597,7 +565,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -605,44 +573,12 @@ template<typename Concept , std::size_t Len, std::size_t Align>

    Returns false if a poly is empty, true otherwise.

    Returns
    False if the poly is empty, true otherwise.
    -

    Definition at line 296 of file poly.hpp.

    +

    Definition at line 286 of file poly.hpp.

    - -

    ◆ operator->() [1/2]

    - -
    -
    -
    -template<typename Concept , std::size_t Len, std::size_t Align>
    - - - - - -
    - - - - - - - -
    const concept_type* entt::basic_poly< Concept, Len, Align >::operator-> () const
    -
    -inlinenoexcept
    -
    - -

    Returns a pointer to the underlying concept.

    -
    Returns
    A pointer to the underlying concept.
    - -

    Definition at line 309 of file poly.hpp.

    - -
    -
    - -

    ◆ operator->() [2/2]

    + +

    ◆ operator->() [1/2]

    @@ -661,7 +597,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -669,7 +605,39 @@ template<typename Concept , std::size_t Len, std::size_t Align>

    Returns a pointer to the underlying concept.

    Returns
    A pointer to the underlying concept.
    -

    Definition at line 304 of file poly.hpp.

    +

    Definition at line 294 of file poly.hpp.

    + + + + +

    ◆ operator->() [2/2]

    + +
    +
    +
    +template<typename Concept , std::size_t Len, std::size_t Align>
    + + + + + +
    + + + + + + + +
    const concept_type* entt::basic_poly< Concept, Len, Align >::operator-> () const
    +
    +inline
    +
    + +

    Returns a pointer to the underlying concept.

    +
    Returns
    A pointer to the underlying concept.
    + +

    Definition at line 299 of file poly.hpp.

    @@ -708,12 +676,12 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    Returns
    This poly object.
    -

    Definition at line 250 of file poly.hpp.

    +

    Definition at line 240 of file poly.hpp.

    - -

    ◆ type()

    + +

    ◆ type()

    @@ -732,7 +700,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -740,7 +708,7 @@ template<typename Concept , std::size_t Len, std::size_t Align>

    Returns the type of the contained object.

    Returns
    The type of the contained object, if any.
    -

    Definition at line 259 of file poly.hpp.

    +

    Definition at line 249 of file poly.hpp.

    @@ -790,7 +758,7 @@ template<typename Concept , std::size_t Len, std::size_t Align> -

    Definition at line 318 of file poly.hpp.

    +

    Definition at line 308 of file poly.hpp.

    @@ -801,7 +769,7 @@ template<typename Concept , std::size_t Len, std::size_t Align> diff --git a/classentt_1_1basic__poly__coll__graph.map b/classentt_1_1basic__poly__coll__graph.map new file mode 100644 index 000000000..479ebd142 --- /dev/null +++ b/classentt_1_1basic__poly__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__poly__coll__graph.md5 b/classentt_1_1basic__poly__coll__graph.md5 new file mode 100644 index 000000000..944a32927 --- /dev/null +++ b/classentt_1_1basic__poly__coll__graph.md5 @@ -0,0 +1 @@ +48fa9816487e75e3fbb3ae1cecacd7f2 \ No newline at end of file diff --git a/classentt_1_1basic__poly__coll__graph.png b/classentt_1_1basic__poly__coll__graph.png new file mode 100644 index 000000000..a6ba4023a Binary files /dev/null and b/classentt_1_1basic__poly__coll__graph.png differ diff --git a/classentt_1_1basic__poly__inherit__graph.map b/classentt_1_1basic__poly__inherit__graph.map new file mode 100644 index 000000000..479ebd142 --- /dev/null +++ b/classentt_1_1basic__poly__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__poly__inherit__graph.md5 b/classentt_1_1basic__poly__inherit__graph.md5 new file mode 100644 index 000000000..944a32927 --- /dev/null +++ b/classentt_1_1basic__poly__inherit__graph.md5 @@ -0,0 +1 @@ +48fa9816487e75e3fbb3ae1cecacd7f2 \ No newline at end of file diff --git a/classentt_1_1basic__poly__inherit__graph.png b/classentt_1_1basic__poly__inherit__graph.png new file mode 100644 index 000000000..a6ba4023a Binary files /dev/null and b/classentt_1_1basic__poly__inherit__graph.png differ diff --git a/classentt_1_1basic__registry-members.html b/classentt_1_1basic__registry-members.html index 3eb0fa55f..b73d304dd 100644 --- a/classentt_1_1basic__registry-members.html +++ b/classentt_1_1basic__registry-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,80 +80,87 @@ $(function() { basic_registry()=defaultentt::basic_registry< Entity > basic_registry(basic_registry &&)=defaultentt::basic_registry< Entity > capacity() constentt::basic_registry< Entity >inline - capacity() const noexceptentt::basic_registry< Entity >inline + capacity() constentt::basic_registry< Entity >inline clear()entt::basic_registry< Entity >inline - create()entt::basic_registry< Entity >inline - create(const entity_type hint)entt::basic_registry< Entity >inline - create(It first, It last)entt::basic_registry< Entity >inline - ctx() constentt::basic_registry< Entity >inline - ctx()entt::basic_registry< Entity >inline - ctx(Func func) constentt::basic_registry< Entity >inline - ctx_or_set(Args &&... args)entt::basic_registry< Entity >inline - current(const entity_type entity) constentt::basic_registry< Entity >inline - data() const noexceptentt::basic_registry< Entity >inline - destroy(const entity_type entity)entt::basic_registry< Entity >inline - destroy(const entity_type entity, const version_type version)entt::basic_registry< Entity >inline - destroy(It first, It last)entt::basic_registry< Entity >inline - destroyed() const noexceptentt::basic_registry< Entity >inline - each(Func func) constentt::basic_registry< Entity >inline - emplace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline - emplace_or_replace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline - empty() constentt::basic_registry< Entity >inline - entity(const entity_type entity) noexceptentt::basic_registry< Entity >inlinestatic - entity_type typedefentt::basic_registry< Entity > - get([[maybe_unused]] const entity_type entity) constentt::basic_registry< Entity >inline - get([[maybe_unused]] const entity_type entity)entt::basic_registry< Entity >inline - get_or_emplace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline - group(get_t< Get... >, exclude_t< Exclude... >={})entt::basic_registry< Entity >inline - group(exclude_t< Exclude... >={})entt::basic_registry< Entity >inline - group_if_exists(get_t< Get... >, exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline - group_if_exists(exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline - insert(It first, It last, const Component &value={})entt::basic_registry< Entity >inline - insert(EIt first, EIt last, CIt from, CIt to)entt::basic_registry< Entity >inline - on_construct()entt::basic_registry< Entity >inline - on_destroy()entt::basic_registry< Entity >inline - on_update()entt::basic_registry< Entity >inline - operator=(basic_registry &&)=defaultentt::basic_registry< Entity > - orphan(const entity_type entity) constentt::basic_registry< Entity >inline - orphans(Func func) constentt::basic_registry< Entity >inline - patch(const entity_type entity, Func &&... func)entt::basic_registry< Entity >inline - poly_storage typedefentt::basic_registry< Entity > - prepare()entt::basic_registry< Entity >inline - remove(const entity_type entity)entt::basic_registry< Entity >inline - remove(It first, It last)entt::basic_registry< Entity >inline - remove_all(const entity_type entity)entt::basic_registry< Entity >inline - remove_if_exists(const entity_type entity)entt::basic_registry< Entity >inline - replace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline - reserve(const size_type cap)entt::basic_registry< Entity >inline - reserve_pools(const size_t count)entt::basic_registry< Entity >inline - runtime_view(ItComp first, ItComp last, ItExcl from={}, ItExcl to={}) constentt::basic_registry< Entity >inline - set(Args &&... args)entt::basic_registry< Entity >inline - shrink_to_fit()entt::basic_registry< Entity >inline - size() constentt::basic_registry< Entity >inline - size() const noexceptentt::basic_registry< Entity >inline - size_type typedefentt::basic_registry< Entity > - sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_registry< Entity >inline - sort()entt::basic_registry< Entity >inline - sortable() constentt::basic_registry< Entity >inline - sortable(const basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > &) noexceptentt::basic_registry< Entity >inline - storage(const type_info info)entt::basic_registry< Entity >inline - storage(const type_info info) constentt::basic_registry< Entity >inline - try_ctx() constentt::basic_registry< Entity >inline - try_ctx()entt::basic_registry< Entity >inline - try_get([[maybe_unused]] const entity_type entity) constentt::basic_registry< Entity >inline - try_get([[maybe_unused]] const entity_type entity)entt::basic_registry< Entity >inline - unset()entt::basic_registry< Entity >inline - valid(const entity_type entity) constentt::basic_registry< Entity >inline - version(const entity_type entity) noexceptentt::basic_registry< Entity >inlinestatic - version_type typedefentt::basic_registry< Entity > - view(exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline - view(exclude_t< Exclude... >={})entt::basic_registry< Entity >inline - visit(entity_type entity, Func func) constentt::basic_registry< Entity >inline - visit(Func func) constentt::basic_registry< Entity >inline + compact()entt::basic_registry< Entity >inline + create()entt::basic_registry< Entity >inline + create(const entity_type hint)entt::basic_registry< Entity >inline + create(It first, It last)entt::basic_registry< Entity >inline + ctx() constentt::basic_registry< Entity >inline + ctx()entt::basic_registry< Entity >inline + ctx(Func func) constentt::basic_registry< Entity >inline + ctx_or_set(Args &&... args)entt::basic_registry< Entity >inline + current(const entity_type entity) constentt::basic_registry< Entity >inline + data() constentt::basic_registry< Entity >inline + destroy(const entity_type entity)entt::basic_registry< Entity >inline + destroy(const entity_type entity, const version_type version)entt::basic_registry< Entity >inline + destroy(It first, It last)entt::basic_registry< Entity >inline + destroyed() constentt::basic_registry< Entity >inline + each(Func func) constentt::basic_registry< Entity >inline + emplace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline + emplace_or_replace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline + empty() constentt::basic_registry< Entity >inline + entity(const entity_type entity)entt::basic_registry< Entity >inlinestatic + entity_type typedefentt::basic_registry< Entity > + erase(const entity_type entity)entt::basic_registry< Entity >inline + erase(It first, It last)entt::basic_registry< Entity >inline + get([[maybe_unused]] const entity_type entity) constentt::basic_registry< Entity >inline + get([[maybe_unused]] const entity_type entity)entt::basic_registry< Entity >inline + get_or_emplace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline + group(get_t< Get... >, exclude_t< Exclude... >={})entt::basic_registry< Entity >inline + group(exclude_t< Exclude... >={})entt::basic_registry< Entity >inline + group_if_exists(get_t< Get... >, exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline + group_if_exists(exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline + insert(It first, It last, const Component &value={})entt::basic_registry< Entity >inline + insert(EIt first, EIt last, CIt from)entt::basic_registry< Entity >inline + on_construct()entt::basic_registry< Entity >inline + on_destroy()entt::basic_registry< Entity >inline + on_update()entt::basic_registry< Entity >inline + operator=(basic_registry &&)=defaultentt::basic_registry< Entity > + orphan(const entity_type entity) constentt::basic_registry< Entity >inline + orphans(Func func) constentt::basic_registry< Entity >inline + patch(const entity_type entity, Func &&... func)entt::basic_registry< Entity >inline + poly_storage typedefentt::basic_registry< Entity > + prepare()entt::basic_registry< Entity >inline + release(const entity_type entity)entt::basic_registry< Entity >inline + release(const entity_type entity, const version_type version)entt::basic_registry< Entity >inline + release(It first, It last)entt::basic_registry< Entity >inline + released() constentt::basic_registry< Entity >inline + remove(const entity_type entity)entt::basic_registry< Entity >inline + remove(It first, It last)entt::basic_registry< Entity >inline + remove_all(const entity_type entity)entt::basic_registry< Entity >inline + remove_if_exists(const entity_type entity)entt::basic_registry< Entity >inline + replace(const entity_type entity, Args &&... args)entt::basic_registry< Entity >inline + reserve(const size_type cap)entt::basic_registry< Entity >inline + reserve_pools(const size_t count)entt::basic_registry< Entity >inline + runtime_view(ItComp first, ItComp last, ItExcl from={}, ItExcl to={}) constentt::basic_registry< Entity >inline + set(Args &&... args)entt::basic_registry< Entity >inline + shrink_to_fit()entt::basic_registry< Entity >inline + size() constentt::basic_registry< Entity >inline + size() constentt::basic_registry< Entity >inline + size_type typedefentt::basic_registry< Entity > + sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_registry< Entity >inline + sort()entt::basic_registry< Entity >inline + sortable() constentt::basic_registry< Entity >inline + sortable(const basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > &)entt::basic_registry< Entity >inline + storage(const type_info info)entt::basic_registry< Entity >inline + storage(const type_info info) constentt::basic_registry< Entity >inline + try_ctx() constentt::basic_registry< Entity >inline + try_ctx()entt::basic_registry< Entity >inline + try_get([[maybe_unused]] const entity_type entity) constentt::basic_registry< Entity >inline + try_get([[maybe_unused]] const entity_type entity)entt::basic_registry< Entity >inline + unset()entt::basic_registry< Entity >inline + valid(const entity_type entity) constentt::basic_registry< Entity >inline + version(const entity_type entity)entt::basic_registry< Entity >inlinestatic + version_type typedefentt::basic_registry< Entity > + view(exclude_t< Exclude... >={}) constentt::basic_registry< Entity >inline + view(exclude_t< Exclude... >={})entt::basic_registry< Entity >inline + visit(entity_type entity, Func func) constentt::basic_registry< Entity >inline + visit(Func func) constentt::basic_registry< Entity >inline diff --git a/classentt_1_1basic__registry.html b/classentt_1_1basic__registry.html index 8b8726c4c..d0ddb6ad7 100644 --- a/classentt_1_1basic__registry.html +++ b/classentt_1_1basic__registry.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_registry< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,7 +89,7 @@ using  Underlying entity identifier.
     
    -using version_type = typename traits_type::version_type +using version_type = typename traits_type::version_type  Underlying version type.
      @@ -128,9 +128,9 @@ Public Member Functions size_type size () const  Returns the number of existing components of the given type. More...
      -size_type size () const noexcept - Returns the number of entities created so far. More...
    -  +size_type size () const + Returns the number of entities created so far. More...
    size_type alive () const  Returns the number of entities still in use. More...
      @@ -145,9 +145,9 @@ Public Member Functions size_type capacity () const  Returns the capacity of the pool for the given component. More...
      -size_type capacity () const noexcept - Returns the number of entities that a registry has currently allocated space for. More...
    -  +size_type capacity () const + Returns the number of entities that a registry has currently allocated space for. More...
    +  template<typename... Component> void shrink_to_fit ()  Requests the removal of unused capacity for the given components. More...
    @@ -156,12 +156,15 @@ Public Member Functions bool empty () const  Checks whether the registry or the pools of the given components are empty. More...
      -const entity_typedata () const noexcept - Direct access to the list of entities of a registry. More...
    -  -entity_type destroyed () const noexcept - Returns the head of the list of destroyed entities. More...
    -  +const entity_typedata () const + Direct access to the list of entities of a registry. More...
    +  +entity_type released () const + Returns the head of the list of released entities. More...
    +  +entity_type destroyed () const + Returns the head of the list of released entities. More...
    +  bool valid (const entity_type entity) const  Checks if an entity identifier refers to a valid entity. More...
      @@ -179,18 +182,28 @@ Public Member Functions  Assigns each element in a range an entity. More...
      template<typename It > -void assign (It first, It last, const entity_type destroyed) +void assign (It first, It last, const entity_type destroyed)  Assigns entities to an empty registry. More...
      -void destroy (const entity_type entity) - Destroys an entity. More...
    -  -void destroy (const entity_type entity, const version_type version) - Destroys an entity. More...
    -  +version_type release (const entity_type entity) + Releases an entity identifier. More...
    +  +version_type release (const entity_type entity, const version_type version) + Releases an entity identifier. More...
    +  +template<typename It > +void release (It first, It last) + Releases all entity identifiers in a range. More...
    +  +version_type destroy (const entity_type entity) + Destroys an entity and releases its identifier. More...
    +  +version_type destroy (const entity_type entity, const version_type version) + Destroys an entity and releases its identifier. More...
    +  template<typename It > void destroy (It first, It last) - Destroys all the entities in a range. More...
    + Destroys all entities in a range and releases their identifiers. More...
      template<typename Component , typename... Args> decltype(auto) emplace (const entity_type entity, Args &&... args) @@ -200,10 +213,10 @@ Public Member Functions void insert (It first, It last, const Component &value={})  Assigns each entity in a range the given component. More...
      -template<typename Component , typename EIt , typename CIt > -void insert (EIt first, EIt last, CIt from, CIt to) - Assigns each entity in a range the given components. More...
    -  +template<typename Component , typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, Component>>> +void insert (EIt first, EIt last, CIt from) + Assigns each entity in a range the given components. More...
    +  template<typename Component , typename... Args> decltype(auto) emplace_or_replace (const entity_type entity, Args &&... args)  Assigns or replaces the given component for an entity. More...
    @@ -216,14 +229,26 @@ Public Member Functions decltype(auto) replace (const entity_type entity, Args &&... args)  Replaces the given component for an entity. More...
      -template<typename... Component> -void remove (const entity_type entity) - Removes the given components from an entity. More...
    -  -template<typename... Component, typename It > -void remove (It first, It last) - Removes the given components from all the entities in a range. More...
    -  +template<typename... Component> +size_type remove (const entity_type entity) + Removes the given components from an entity. More...
    +  +template<typename... Component, typename It > +size_type remove (It first, It last) + Removes the given components from all the entities in a range. More...
    +  +template<typename... Component> +void erase (const entity_type entity) + Erases the given components from an entity. More...
    +  +template<typename... Component, typename It > +void erase (It first, It last) + Erases the given components from all the entities in a range. More...
    +  +template<typename... Component> +void compact () + Removes all tombstones from a registry or only the pools for the given components. More...
    +  template<typename... Component> size_type remove_if_exists (const entity_type entity)  Removes the given components from an entity. More...
    @@ -286,12 +311,12 @@ Public Member Functions auto on_destroy ()  Returns a sink object for the given component. More...
      -template<typename... Component, typename... Exclude> -basic_view< Entity, exclude_t< Exclude... >, Component... > view (exclude_t< Exclude... >={}) const - Returns a view for the given components. More...
    -  +template<typename... Component, typename... Exclude> +basic_view< Entity, exclude_t< Exclude... >, std::add_const_t< Component >... > view (exclude_t< Exclude... >={}) const + Returns a view for the given components. More...
    +  template<typename... Component, typename... Exclude> -basic_view< Entity, exclude_t< Exclude... >, Component... > view (exclude_t< Exclude... >={}) +basic_view< Entity, exclude_t< Exclude... >, Component... > view (exclude_t< Exclude... >={})  Returns a view for the given components. More...
      template<typename ItComp , typename ItExcl = id_type *> @@ -302,26 +327,26 @@ Public Member Functions basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > group (get_t< Get... >, exclude_t< Exclude... >={})  Returns a group for the given components. More...
      -template<typename... Owned, typename... Get, typename... Exclude> -basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > group_if_exists (get_t< Get... >, exclude_t< Exclude... >={}) const - Returns a group for the given components. More...
    -  +template<typename... Owned, typename... Get, typename... Exclude> +basic_group< Entity, exclude_t< Exclude... >, get_t< std::add_const_t< Get >... >, std::add_const_t< Owned >... > group_if_exists (get_t< Get... >, exclude_t< Exclude... >={}) const + Returns a group for the given components. More...
    +  template<typename... Owned, typename... Exclude> basic_group< Entity, exclude_t< Exclude... >, get_t<>, Owned... > group (exclude_t< Exclude... >={})  Returns a group for the given components. More...
      -template<typename... Owned, typename... Exclude> -basic_group< Entity, exclude_t< Exclude... >, get_t<>, Owned... > group_if_exists (exclude_t< Exclude... >={}) const - Returns a group for the given components. More...
    -  +template<typename... Owned, typename... Exclude> +basic_group< Entity, exclude_t< Exclude... >, get_t<>, std::add_const_t< Owned >... > group_if_exists (exclude_t< Exclude... >={}) const + Returns a group for the given components. More...
    +  template<typename... Component> bool sortable () const  Checks whether the given components belong to any group. More...
      -template<typename... Owned, typename... Get, typename... Exclude> -bool sortable (const basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > &) noexcept - Checks whether a group can be sorted. More...
    -  +template<typename... Owned, typename... Get, typename... Exclude> +bool sortable (const basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > &) + Checks whether a group can be sorted. More...
    +  template<typename Component , typename Compare , typename Sort = std_sort, typename... Args> void sort (Compare compare, Sort algo=Sort{}, Args &&... args)  Sorts the pool of entities for the given component. More...
    @@ -350,18 +375,18 @@ Public Member Functions Type & ctx_or_set (Args &&... args)  Binds an object to the context of the registry. More...
      -template<typename Type > -Type * try_ctx () const - Returns a pointer to an object in the context of the registry. More...
    -  +template<typename Type > +std::add_const_t< Type > * try_ctx () const + Returns a pointer to an object in the context of the registry. More...
    +  template<typename Type > Type * try_ctx ()  Returns a pointer to an object in the context of the registry. More...
      -template<typename Type > -Type & ctx () const - Returns a reference to an object in the context of the registry. More...
    -  +template<typename Type > +std::add_const_t< Type > & ctx () const + Returns a reference to an object in the context of the registry. More...
    +  template<typename Type > Type & ctx ()  Returns a reference to an object in the context of the registry. More...
    @@ -373,12 +398,12 @@ Public Member Functions - - - - - - + + + + + +

    Static Public Member Functions

    static entity_type entity (const entity_type entity) noexcept
     Returns the entity identifier without the version. More...
     
    static version_type version (const entity_type entity) noexcept
     Returns the version stored along with an entity identifier. More...
     
    static entity_type entity (const entity_type entity)
     Returns the entity identifier without the version. More...
     
    static version_type version (const entity_type entity)
     Returns the version stored along with an entity identifier. More...
     

    Detailed Description

    template<typename Entity>
    @@ -389,12 +414,12 @@ class entt::basic_registry< Entity >

    It stores entities and arranges pools of components on a per request basis. By means of a registry, users can manage entities and components, then create views or groups to iterate them.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    -

    Definition at line 44 of file registry.hpp.

    +

    Definition at line 45 of file registry.hpp.

    Member Function Documentation

    ◆ alive()

    @@ -472,7 +497,7 @@ template<typename... Component>
    Returns
    True if the entity has all the components, false otherwise.
    -

    Definition at line 760 of file registry.hpp.

    +

    Definition at line 877 of file registry.hpp.

    @@ -520,7 +545,7 @@ template<typename... Component>
    Returns
    True if the entity has at least one of the given components, false otherwise.
    -

    Definition at line 777 of file registry.hpp.

    +

    Definition at line 894 of file registry.hpp.

    @@ -587,7 +612,7 @@ template<typename It > -

    Definition at line 469 of file registry.hpp.

    +

    Definition at line 478 of file registry.hpp.

    @@ -627,12 +652,12 @@ template<typename Component >
    Returns
    Capacity of the pool of the given component.
    -

    Definition at line 283 of file registry.hpp.

    +

    Definition at line 284 of file registry.hpp.

    - -

    ◆ capacity() [2/2]

    + +

    ◆ capacity() [2/2]

    @@ -651,7 +676,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -659,7 +684,7 @@ template<typename Entity >

    Returns the number of entities that a registry has currently allocated space for.

    Returns
    Capacity of the registry.
    -

    Definition at line 293 of file registry.hpp.

    +

    Definition at line 294 of file registry.hpp.

    @@ -698,7 +723,46 @@ template<typename... Component> -

    Definition at line 889 of file registry.hpp.

    +

    Definition at line 1006 of file registry.hpp.

    + + + + +

    ◆ compact()

    + +
    +
    +
    +template<typename Entity >
    +
    +template<typename... Component>
    + + + + + +
    + + + + + + + +
    void entt::basic_registry< Entity >::compact ()
    +
    +inline
    +
    + +

    Removes all tombstones from a registry or only the pools for the given components.

    +
    Template Parameters
    + + +
    ComponentTypes of components for which to clear all tombstones.
    +
    +
    + +

    Definition at line 826 of file registry.hpp.

    @@ -735,7 +799,7 @@ template<typename Entity >
    Returns
    A valid entity identifier.
    -

    Definition at line 392 of file registry.hpp.

    +

    Definition at line 399 of file registry.hpp.

    @@ -767,16 +831,16 @@ template<typename Entity >

    Creates a new entity and returns it.

    See also
    create
    -

    If the requested entity isn't in use, the suggested identifier is created and returned. Otherwise, a new one will be generated for this purpose.

    +

    If the requested entity isn't in use, the suggested identifier is created and returned. Otherwise, a new identifier is generated.

    Parameters
    - +
    hintA desired entity identifier.
    hintRequired entity identifier.
    Returns
    A valid entity identifier.
    -

    Definition at line 407 of file registry.hpp.

    +

    Definition at line 414 of file registry.hpp.

    @@ -834,7 +898,7 @@ template<typename It > -

    Definition at line 441 of file registry.hpp.

    +

    Definition at line 447 of file registry.hpp.

    @@ -875,12 +939,12 @@ template<typename Type >
    Returns
    A valid reference to the object in the context of the registry.
    -

    Definition at line 1557 of file registry.hpp.

    +

    Definition at line 1667 of file registry.hpp.

    - -

    ◆ ctx() [2/3]

    + +

    ◆ ctx() [2/3]

    @@ -893,7 +957,7 @@ template<typename Type >
    - + @@ -916,7 +980,7 @@ template<typename Type >
    Returns
    A valid reference to the object in the context of the registry.
    -

    Definition at line 1549 of file registry.hpp.

    +

    Definition at line 1659 of file registry.hpp.

    @@ -967,7 +1031,7 @@ template<typename Func > -

    Definition at line 1585 of file registry.hpp.

    +

    Definition at line 1695 of file registry.hpp.

    @@ -1016,7 +1080,7 @@ template<typename Type , typename... Args>
    Returns
    A reference to the object in the context of the registry.
    -

    Definition at line 1514 of file registry.hpp.

    +

    Definition at line 1624 of file registry.hpp.

    @@ -1056,12 +1120,12 @@ template<typename Entity >
    Returns
    Actual version for the given entity identifier.
    -

    Definition at line 376 of file registry.hpp.

    +

    Definition at line 383 of file registry.hpp.

    - -

    ◆ data()

    + +

    ◆ data()

    @@ -1080,22 +1144,22 @@ template<typename Entity >
    Type& entt::basic_registry< Entity >::ctx std::add_const_t<Type>& entt::basic_registry< Entity >::ctx ( ) const
    -inlinenoexcept +inline

    Direct access to the list of entities of a registry.

    -

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    Warning
    This list contains both valid and destroyed entities and isn't suitable for direct use.
    Returns
    A pointer to the array of entities.
    -

    Definition at line 339 of file registry.hpp.

    +

    Definition at line 340 of file registry.hpp.

    - -

    ◆ destroy() [1/3]

    + +

    ◆ destroy() [1/3]

    @@ -1106,7 +1170,7 @@ template<typename Entity >
    - + @@ -1120,22 +1184,25 @@ template<typename Entity >
    void entt::basic_registry< Entity >::destroy version_type entt::basic_registry< Entity >::destroy ( const entity_type  entity)
    -

    Destroys an entity.

    -

    When an entity is destroyed, its version is updated and the identifier can be recycled at any time.

    -
    See also
    remove_all
    +

    Destroys an entity and releases its identifier.

    +

    The version is updated and the identifier can be recycled at any time.

    +
    Warning
    Adding or removing components to an entity that is being destroyed can result in undefined behavior.
    +
    +Attempting to use an invalid entity results in undefined behavior.
    Parameters
    entityA valid entity identifier.
    +
    Returns
    The version of the recycled entity.
    -

    Definition at line 485 of file registry.hpp.

    +

    Definition at line 547 of file registry.hpp.

    - -

    ◆ destroy() [2/3]

    + +

    ◆ destroy() [2/3]

    @@ -1146,7 +1213,7 @@ template<typename Entity >
    - + @@ -1170,9 +1237,9 @@ template<typename Entity >
    void entt::basic_registry< Entity >::destroy version_type entt::basic_registry< Entity >::destroy ( const entity_type  entity,
    -

    Destroys an entity.

    -

    If the entity isn't already destroyed, the suggested version is used instead of the implicitly generated one.

    -
    See also
    remove_all
    +

    Destroys an entity and releases its identifier.

    +

    The suggested version or the valid version closest to the suggested one is used instead of the implicitly generated version.

    +
    See also
    destroy
    Parameters
    @@ -1180,8 +1247,9 @@ template<typename Entity >
    entityA valid entity identifier.
    +
    Returns
    The version actually assigned to the entity.
    -

    Definition at line 500 of file registry.hpp.

    +

    Definition at line 563 of file registry.hpp.

    @@ -1223,8 +1291,8 @@ template<typename It >
    -

    Destroys all the entities in a range.

    -
    See also
    destroy
    +

    Destroys all entities in a range and releases their identifiers.

    +
    See also
    destroy
    Template Parameters
    @@ -1239,12 +1307,12 @@ template<typename It > -

    Definition at line 515 of file registry.hpp.

    +

    Definition at line 583 of file registry.hpp.

    - -

    ◆ destroyed()

    + +

    ◆ destroyed()

    @@ -1263,17 +1331,17 @@ template<typename Entity >
    ItType of input iterator.
    -inlinenoexcept +inline
    -

    Returns the head of the list of destroyed entities.

    +

    Returns the head of the list of released entities.

    This function is intended for use in conjunction with assign.
    The returned entity has an invalid identifier in all cases.

    -
    Returns
    The head of the list of destroyed entities.
    +
    Returns
    The head of the list of released entities.
    -

    Definition at line 351 of file registry.hpp.

    +

    Definition at line 358 of file registry.hpp.

    @@ -1323,7 +1391,7 @@ template<typename Func > -

    Definition at line 923 of file registry.hpp.

    +

    Definition at line 1036 of file registry.hpp.

    @@ -1384,7 +1452,7 @@ template<typename Component , typename... Args>
    Returns
    A reference to the newly created component.
    -

    Definition at line 539 of file registry.hpp.

    +

    Definition at line 615 of file registry.hpp.

    @@ -1428,7 +1496,9 @@ template<typename Component , typename... Args>

    Assigns or replaces the given component for an entity.

    Equivalent to the following snippet (pseudocode):

    -
    auto &component = registry.all_of<Component>(entity) ? registry.replace<Component>(entity, args...) : registry.emplace<Component>(entity, args...);
    +
    auto &component = registry.all_of<Component>(entity) ? registry.replace<Component>(entity, args...) : registry.emplace<Component>(entity, args...);
    +
    static entity_type entity(const entity_type entity)
    Returns the entity identifier without the version.
    Definition: registry.hpp:165
    +
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:77

    Prefer this function anyway because it has slightly better performance.

    Warning
    Attempting to use an invalid entity results in undefined behavior.
    Template Parameters
    @@ -1447,7 +1517,7 @@ template<typename Component , typename... Args>
    Returns
    A reference to the newly created component.
    -

    Definition at line 602 of file registry.hpp.

    +

    Definition at line 677 of file registry.hpp.

    @@ -1488,12 +1558,12 @@ template<typename... Component>
    Returns
    True if the registry or the pools of the given components are empty, false otherwise.
    -

    Definition at line 319 of file registry.hpp.

    +

    Definition at line 320 of file registry.hpp.

    - -

    ◆ entity()

    + +

    ◆ entity()

    @@ -1513,7 +1583,7 @@ template<typename Entity >
    -inlinestaticnoexcept +inlinestatic
    @@ -1529,6 +1599,112 @@ template<typename Entity >

    Definition at line 165 of file registry.hpp.

    + + + +

    ◆ erase() [1/2]

    + +
    +
    +
    +template<typename Entity >
    +
    +template<typename... Component>
    + + + + + +
    + + + + + + + + +
    void entt::basic_registry< Entity >::erase (const entity_type entity)
    +
    +inline
    +
    + +

    Erases the given components from an entity.

    +
    Warning
    Attempting to use an invalid entity or to erase a component from an entity that doesn't own it results in undefined behavior.
    +
    Template Parameters
    + + +
    ComponentTypes of components to erase.
    +
    +
    +
    Parameters
    + + +
    entityA valid entity identifier.
    +
    +
    + +

    Definition at line 792 of file registry.hpp.

    + +
    +
    + +

    ◆ erase() [2/2]

    + +
    +
    +
    +template<typename Entity >
    +
    +template<typename... Component, typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_registry< Entity >::erase (It first,
    It last 
    )
    +
    +inline
    +
    + +

    Erases the given components from all the entities in a range.

    +
    See also
    erase
    +
    Template Parameters
    + + + +
    ComponentTypes of components to erase.
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 809 of file registry.hpp.

    +
    @@ -1575,7 +1751,7 @@ template<typename... Component>
    Returns
    References to the components owned by the entity.
    -

    Definition at line 808 of file registry.hpp.

    +

    Definition at line 925 of file registry.hpp.

    @@ -1623,7 +1799,7 @@ template<typename... Component>
    Returns
    References to the components owned by the entity.
    -

    Definition at line 794 of file registry.hpp.

    +

    Definition at line 911 of file registry.hpp.

    @@ -1668,7 +1844,7 @@ template<typename Component , typename... Args>

    Returns a reference to the given component for an entity.

    In case the entity doesn't own the component, the parameters provided are used to construct it.
    Equivalent to the following snippet (pseudocode):

    -
    auto &component = registry.all_of<Component>(entity) ? registry.get<Component>(entity) : registry.emplace<Component>(entity, args...);
    +
    auto &component = registry.all_of<Component>(entity) ? registry.get<Component>(entity) : registry.emplace<Component>(entity, args...);

    Prefer this function anyway because it has slightly better performance.

    Warning
    Attempting to use an invalid entity results in undefined behavior.
    Template Parameters
    @@ -1687,7 +1863,7 @@ template<typename Component , typename... Args>
    Returns
    Reference to the component owned by the entity.
    -

    Definition at line 841 of file registry.hpp.

    +

    Definition at line 958 of file registry.hpp.

    @@ -1730,7 +1906,7 @@ template<typename... Owned, typename... Exclude>
    Returns
    A newly created group.
    -

    Definition at line 1282 of file registry.hpp.

    +

    Definition at line 1392 of file registry.hpp.

    @@ -1789,12 +1965,12 @@ template<typename... Owned, typename... Get, typename... Exclude>
    Returns
    A newly created group.
    -

    Definition at line 1165 of file registry.hpp.

    +

    Definition at line 1277 of file registry.hpp.

    - -

    ◆ group_if_exists() [1/2]

    + +

    ◆ group_if_exists() [1/2]

    @@ -1807,7 +1983,7 @@ template<typename... Owned, typename... Exclude>
    - + @@ -1822,7 +1998,7 @@ template<typename... Owned, typename... Exclude>

    Returns a group for the given components.

    -
    See also
    group_if_exists
    +
    See also
    group_if_exists
    Template Parameters
    basic_group<Entity, exclude_t<Exclude...>, get_t<>, Owned...> entt::basic_registry< Entity >::group_if_exists basic_group<Entity, exclude_t<Exclude...>, get_t<>, std::add_const_t<Owned>...> entt::basic_registry< Entity >::group_if_exists ( exclude_t< Exclude... >  = {})
    @@ -1832,12 +2008,12 @@ template<typename... Owned, typename... Exclude>
    Returns
    A newly created group.
    -

    Definition at line 1296 of file registry.hpp.

    +

    Definition at line 1406 of file registry.hpp.

    - -

    ◆ group_if_exists() [2/2]

    + +

    ◆ group_if_exists() [2/2]

    @@ -1850,7 +2026,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
    +inline
    OwnedTypes of components owned by the group.
    - + @@ -1886,19 +2062,19 @@ template<typename... Owned, typename... Get, typename... Exclude>
    Returns
    A newly created group.
    -

    Definition at line 1255 of file registry.hpp.

    +

    Definition at line 1367 of file registry.hpp.

    - -

    ◆ insert() [1/2]

    + +

    ◆ insert() [1/2]

    template<typename Entity >
    -template<typename Component , typename EIt , typename CIt >
    +template<typename Component , typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, Component>>>
    basic_group<Entity, exclude_t<Exclude...>, get_t<Get...>, Owned...> entt::basic_registry< Entity >::group_if_exists basic_group<Entity, exclude_t<Exclude...>, get_t<std::add_const_t<Get>...>, std::add_const_t<Owned>...> entt::basic_registry< Entity >::group_if_exists ( get_t< Get... >  ,
    - - - - - - - + @@ -1955,12 +2125,11 @@ template<typename Component , typename EIt , typename CIt > -
    @@ -1919,13 +2095,7 @@ template<typename Component , typename EIt , typename CIt > CIt from,
    CIt to from 
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    fromAn iterator to the first element of the range of components.
    toAn iterator past the last element of the range of components.
    -

    Definition at line 575 of file registry.hpp.

    +

    Definition at line 650 of file registry.hpp.

    @@ -2026,7 +2195,7 @@ template<typename Component , typename It > -

    Definition at line 556 of file registry.hpp.

    +

    Definition at line 632 of file registry.hpp.

    @@ -2071,7 +2240,7 @@ template<typename Component >
    Returns
    A temporary sink object.
    -

    Definition at line 993 of file registry.hpp.

    +

    Definition at line 1106 of file registry.hpp.

    @@ -2116,7 +2285,7 @@ template<typename Component >
    Returns
    A temporary sink object.
    -

    Definition at line 1041 of file registry.hpp.

    +

    Definition at line 1154 of file registry.hpp.

    @@ -2161,7 +2330,7 @@ template<typename Component >
    Returns
    A temporary sink object.
    -

    Definition at line 1016 of file registry.hpp.

    +

    Definition at line 1129 of file registry.hpp.

    @@ -2231,7 +2400,7 @@ template<typename Entity >
    Returns
    True if the entity has no components assigned, false otherwise.
    -

    Definition at line 942 of file registry.hpp.

    +

    Definition at line 1055 of file registry.hpp.

    @@ -2281,7 +2450,7 @@ template<typename Func > -

    Definition at line 964 of file registry.hpp.

    +

    Definition at line 1077 of file registry.hpp.

    @@ -2344,7 +2513,7 @@ template<typename Component , typename... Func>
    Returns
    A reference to the patched component.
    -

    Definition at line 636 of file registry.hpp.

    +

    Definition at line 711 of file registry.hpp.

    @@ -2387,8 +2556,193 @@ template<typename Component > - -

    ◆ remove() [1/2]

    + +

    ◆ release() [1/3]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + +
    version_type entt::basic_registry< Entity >::release (const entity_type entity)
    +
    +inline
    +
    + +

    Releases an entity identifier.

    +

    The version is updated and the identifier can be recycled at any time.

    +
    Warning
    Attempting to use an invalid entity results in undefined behavior.
    +
    Parameters
    + + +
    entityA valid entity identifier.
    +
    +
    +
    Returns
    The version of the recycled entity.
    + +

    Definition at line 495 of file registry.hpp.

    + +
    +
    + +

    ◆ release() [2/3]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    version_type entt::basic_registry< Entity >::release (const entity_type entity,
    const version_type version 
    )
    +
    +inline
    +
    + +

    Releases an entity identifier.

    +

    The suggested version or the valid version closest to the suggested one is used instead of the implicitly generated version.

    +
    See also
    release
    +
    Parameters
    + + + +
    entityA valid entity identifier.
    versionA desired version upon destruction.
    +
    +
    +
    Returns
    The version actually assigned to the entity.
    + +

    Definition at line 511 of file registry.hpp.

    + +
    +
    + +

    ◆ release() [3/3]

    + +
    +
    +
    +template<typename Entity >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_registry< Entity >::release (It first,
    It last 
    )
    +
    +inline
    +
    + +

    Releases all entity identifiers in a range.

    +
    See also
    release
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 526 of file registry.hpp.

    + +
    +
    + +

    ◆ released()

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_registry< Entity >::released () const
    +
    +inline
    +
    + +

    Returns the head of the list of released entities.

    +

    This function is intended for use in conjunction with assign.
    + The returned entity has an invalid identifier in all cases.

    +
    Returns
    The head of the list of released entities.
    + +

    Definition at line 352 of file registry.hpp.

    + +
    +
    + +

    ◆ remove() [1/2]

    @@ -2401,7 +2755,7 @@ template<typename... Component>
    - + @@ -2416,7 +2770,7 @@ template<typename... Component>

    Removes the given components from an entity.

    -
    Warning
    Attempting to use an invalid entity or to remove a component from an entity that doesn't own it results in undefined behavior.
    +
    Warning
    Attempting to use an invalid entity results in undefined behavior.
    Template Parameters
    void entt::basic_registry< Entity >::remove size_type entt::basic_registry< Entity >::remove ( const entity_type  entity)
    @@ -2429,13 +2783,14 @@ template<typename... Component>
    ComponentTypes of components to remove.
    +
    Returns
    The number of components actually removed.
    -

    Definition at line 674 of file registry.hpp.

    +

    Definition at line 749 of file registry.hpp.

    - -

    ◆ remove() [2/2]

    + +

    ◆ remove() [2/2]

    @@ -2448,7 +2803,7 @@ template<typename... Component, typename It >
    - + @@ -2473,7 +2828,7 @@ template<typename... Component, typename It >

    Removes the given components from all the entities in a range.

    -
    See also
    remove
    +
    See also
    remove
    Template Parameters
    void entt::basic_registry< Entity >::remove size_type entt::basic_registry< Entity >::remove ( It  first,
    @@ -2488,8 +2843,9 @@ template<typename... Component, typename It >
    ComponentTypes of components to remove.
    +
    Returns
    The number of components actually removed.
    -

    Definition at line 691 of file registry.hpp.

    +

    Definition at line 767 of file registry.hpp.

    @@ -2530,7 +2886,7 @@ Attempting to use an invalid entity results in undefined behavior. -

    Definition at line 738 of file registry.hpp.

    +

    Definition at line 858 of file registry.hpp.

    @@ -2563,9 +2919,6 @@ template<typename... Component>

    Removes the given components from an entity.

    -

    Equivalent to the following snippet (pseudocode):

    -
    if(registry.all_of<Component>(entity)) { registry.remove<Component>(entity) }
    -

    Prefer this function anyway because it has slightly better performance.

    Warning
    Attempting to use an invalid entity results in undefined behavior.
    Template Parameters
    @@ -2581,7 +2934,7 @@ template<typename... Component>
    Returns
    The number of components actually removed.
    -

    Definition at line 716 of file registry.hpp.

    +

    Definition at line 839 of file registry.hpp.

    @@ -2642,7 +2995,7 @@ template<typename Component , typename... Args>
    Returns
    A reference to the component being replaced.
    -

    Definition at line 659 of file registry.hpp.

    +

    Definition at line 734 of file registry.hpp.

    @@ -2728,7 +3081,7 @@ template<typename Entity > -

    Definition at line 273 of file registry.hpp.

    +

    Definition at line 274 of file registry.hpp.

    @@ -2805,7 +3158,7 @@ template<typename ItComp , typename ItExcl = id_type *>
    Returns
    A newly created runtime view.
    -

    Definition at line 1120 of file registry.hpp.

    +

    Definition at line 1232 of file registry.hpp.

    @@ -2854,7 +3207,7 @@ template<typename Type , typename... Args>
    Returns
    A reference to the newly created object.
    -

    Definition at line 1487 of file registry.hpp.

    +

    Definition at line 1597 of file registry.hpp.

    @@ -2893,7 +3246,7 @@ template<typename... Component> -

    Definition at line 303 of file registry.hpp.

    +

    Definition at line 304 of file registry.hpp.

    @@ -2937,8 +3290,8 @@ template<typename Component > - -

    ◆ size() [2/2]

    + +

    ◆ size() [2/2]

    @@ -2957,7 +3310,7 @@ template<typename Entity >
    -inlinenoexcept
    @@ -3015,7 +3368,7 @@ template<typename To , typename From >
    -

    Definition at line 1411 of file registry.hpp.

    +

    Definition at line 1521 of file registry.hpp.

    @@ -3096,7 +3449,7 @@ template<typename Component , typename Compare , typename Sort = std_sort, t -

    Definition at line 1372 of file registry.hpp.

    +

    Definition at line 1482 of file registry.hpp.

    @@ -3136,12 +3489,12 @@ template<typename... Component>
    Returns
    True if the pools of the given components are sortable, false otherwise.
    -

    Definition at line 1307 of file registry.hpp.

    +

    Definition at line 1417 of file registry.hpp.

    - -

    ◆ sortable() [2/2]

    + +

    ◆ sortable() [2/2]

    @@ -3163,7 +3516,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
    -inlinenoexcept +inline
    @@ -3179,7 +3532,7 @@ template<typename... Owned, typename... Get, typename... Exclude>
    Returns
    True if the group can be sorted, false otherwise.
    -

    Definition at line 1319 of file registry.hpp.

    +

    Definition at line 1429 of file registry.hpp.

    @@ -3297,12 +3650,12 @@ template<typename Type >
    Returns
    A pointer to the object if it exists in the context of the registry, a null pointer otherwise.
    -

    Definition at line 1533 of file registry.hpp.

    +

    Definition at line 1643 of file registry.hpp.

    - -

    ◆ try_ctx() [2/2]

    + +

    ◆ try_ctx() [2/2]

    @@ -3315,7 +3668,7 @@ template<typename Type >
    - + @@ -3337,7 +3690,7 @@ template<typename Type >
    Returns
    A pointer to the object if it exists in the context of the registry, a null pointer otherwise.
    -

    Definition at line 1526 of file registry.hpp.

    +

    Definition at line 1636 of file registry.hpp.

    @@ -3386,7 +3739,7 @@ template<typename... Component>
    Returns
    Pointers to the components owned by the entity.
    -

    Definition at line 874 of file registry.hpp.

    +

    Definition at line 991 of file registry.hpp.

    @@ -3435,7 +3788,7 @@ template<typename... Component>
    Returns
    Pointers to the components owned by the entity.
    -

    Definition at line 861 of file registry.hpp.

    +

    Definition at line 978 of file registry.hpp.

    @@ -3474,7 +3827,7 @@ template<typename Type > -

    Definition at line 1498 of file registry.hpp.

    +

    Definition at line 1608 of file registry.hpp.

    @@ -3513,12 +3866,12 @@ template<typename Entity >
    Returns
    True if the identifier is valid, false otherwise.
    -

    Definition at line 360 of file registry.hpp.

    +

    Definition at line 367 of file registry.hpp.

    - -

    ◆ version()

    + +

    ◆ version()

    @@ -3538,7 +3891,7 @@ template<typename Entity >
    Type* entt::basic_registry< Entity >::try_ctx std::add_const_t<Type>* entt::basic_registry< Entity >::try_ctx ( ) const
    -inlinestaticnoexcept +inlinestatic
    @@ -3570,7 +3923,7 @@ template<typename... Component, typename... Exclude>
    - + @@ -3605,12 +3958,12 @@ template<typename... Component, typename... Exclude>
    Returns
    A newly created view.
    -

    Definition at line 1086 of file registry.hpp.

    +

    Definition at line 1198 of file registry.hpp.

    - -

    ◆ view() [2/2]

    + +

    ◆ view() [2/2]

    @@ -3623,7 +3976,7 @@ template<typename... Component, typename... Exclude>
    @@ -30,10 +30,10 @@
    basic_view<Entity, exclude_t<Exclude...>, Component...> entt::basic_registry< Entity >::view basic_view<Entity, exclude_t<Exclude...>, Component...> entt::basic_registry< Entity >::view ( exclude_t< Exclude... >  = {}) - + @@ -3658,7 +4011,7 @@ template<typename... Component, typename... Exclude>
    Returns
    A newly created view.
    -

    Definition at line 1078 of file registry.hpp.

    +

    Definition at line 1191 of file registry.hpp.

    @@ -3720,7 +4073,7 @@ template<typename Func > -

    Definition at line 1438 of file registry.hpp.

    +

    Definition at line 1548 of file registry.hpp.

    @@ -3771,7 +4124,7 @@ template<typename Func > -

    Definition at line 1467 of file registry.hpp.

    +

    Definition at line 1577 of file registry.hpp.

    @@ -3780,11 +4133,9 @@ template<typename Func >
  • src/entt/entity/registry.hpp
  • -
    static entity_type entity(const entity_type entity) noexcept
    Returns the entity identifier without the version.
    Definition: registry.hpp:165
    -
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:76
    diff --git a/classentt_1_1basic__runtime__view-members.html b/classentt_1_1basic__runtime__view-members.html index 5d5a806c0..02c51bd6e 100644 --- a/classentt_1_1basic__runtime__view-members.html +++ b/classentt_1_1basic__runtime__view-members.html @@ -3,7 +3,7 @@ - +EnTT: Member List @@ -22,7 +22,7 @@ @@ -30,10 +30,10 @@
    basic_view<Entity, exclude_t<Exclude...>, Component...> entt::basic_registry< Entity >::view basic_view<Entity, exclude_t<Exclude...>, std::add_const_t<Component>...> entt::basic_registry< Entity >::view ( exclude_t< Exclude... >  = {})
    EnTT -  3.7.0 +  3.8.0
    - + @@ -73,8 +73,8 @@ $(function() {

    This is the complete list of members for entt::basic_runtime_view< Entity >, including all inherited members.

    - - + + @@ -86,7 +86,7 @@ $(function() {
    basic_runtime_view() noexceptentt::basic_runtime_view< Entity >inline
    basic_runtime_view(std::vector< const basic_sparse_set< Entity > * > cpools, std::vector< const basic_sparse_set< Entity > * > epools) noexceptentt::basic_runtime_view< Entity >inline
    basic_runtime_view()entt::basic_runtime_view< Entity >inline
    basic_runtime_view(std::vector< const basic_common_type * > cpools, std::vector< const basic_common_type * > epools)entt::basic_runtime_view< Entity >inline
    begin() constentt::basic_runtime_view< Entity >inline
    contains(const entity_type entt) constentt::basic_runtime_view< Entity >inline
    each(Func func) constentt::basic_runtime_view< Entity >inline
    diff --git a/classentt_1_1basic__runtime__view.html b/classentt_1_1basic__runtime__view.html index 5e308977e..d6703f779 100644 --- a/classentt_1_1basic__runtime__view.html +++ b/classentt_1_1basic__runtime__view.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_runtime_view< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -98,13 +98,13 @@ using 

    Public Member Functions

    -basic_runtime_view () noexcept - Default constructor to use to create empty, invalid views.
    -  - basic_runtime_view (std::vector< const basic_sparse_set< Entity > * > cpools, std::vector< const basic_sparse_set< Entity > * > epools) noexcept - Constructs a runtime view from a set of storage classes. More...
    -  +basic_runtime_view () + Default constructor to use to create empty, invalid views.
    +  + basic_runtime_view (std::vector< const basic_common_type * > cpools, std::vector< const basic_common_type * > epools) + Constructs a runtime view from a set of storage classes. More...
    size_type size_hint () const  Estimates the number of entities iterated by the view. More...
      @@ -141,15 +141,15 @@ class entt::basic_runtime_view< Entity >
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    -

    Definition at line 57 of file runtime_view.hpp.

    +

    Definition at line 58 of file runtime_view.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_runtime_view()

    + +

    ◆ basic_runtime_view()

    @@ -162,13 +162,13 @@ template<typename Entity >
    entt::basic_runtime_view< Entity >::basic_runtime_view ( - std::vector< const basic_sparse_set< Entity > * >  + std::vector< const basic_common_type * >  cpools, - std::vector< const basic_sparse_set< Entity > * >  + std::vector< const basic_common_type * >  epools  @@ -179,7 +179,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -193,7 +193,7 @@ template<typename Entity >
    -

    Definition at line 152 of file runtime_view.hpp.

    +

    Definition at line 157 of file runtime_view.hpp.

    @@ -227,7 +227,7 @@ template<typename Entity >

    The returned iterator points to the first entity that has the given components. If the view is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first entity that has the given components.
    -

    Definition at line 182 of file runtime_view.hpp.

    +

    Definition at line 185 of file runtime_view.hpp.

    @@ -266,7 +266,7 @@ template<typename Entity >
    Returns
    True if the view contains the given entity, false otherwise.
    -

    Definition at line 206 of file runtime_view.hpp.

    +

    Definition at line 209 of file runtime_view.hpp.

    @@ -302,6 +302,7 @@ template<typename Func >

    The function object is invoked for each entity. It is provided only with the entity itself. To get the components, users can use the registry with which the view was built.
    The signature of the function should be equivalent to the following:

    void(const entity_type);
    +
    Entity entity_type
    Underlying entity identifier.
    Template Parameters
    @@ -315,7 +316,7 @@ template<typename Func > -

    Definition at line 227 of file runtime_view.hpp.

    +

    Definition at line 230 of file runtime_view.hpp.

    @@ -348,7 +349,7 @@ template<typename Entity >

    The returned iterator points to the entity following the last entity that has the given components. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the entity following the last entity that has the given components.
    -

    Definition at line 197 of file runtime_view.hpp.

    +

    Definition at line 200 of file runtime_view.hpp.

    @@ -380,7 +381,7 @@ template<typename Entity >

    Estimates the number of entities iterated by the view.

    Returns
    Estimated number of entities iterated by the view.
    -

    Definition at line 168 of file runtime_view.hpp.

    +

    Definition at line 171 of file runtime_view.hpp.

    @@ -389,10 +390,9 @@ template<typename Entity >
  • src/entt/entity/runtime_view.hpp
  • -
    Entity entity_type
    Underlying entity identifier.
    diff --git a/classentt_1_1basic__snapshot-members.html b/classentt_1_1basic__snapshot-members.html index f15ccc921..3579e49b7 100644 --- a/classentt_1_1basic__snapshot-members.html +++ b/classentt_1_1basic__snapshot-members.html @@ -3,7 +3,7 @@ - +EnTT: Member List @@ -22,7 +22,7 @@ @@ -30,10 +30,10 @@
    FuncType of the function object to invoke.
    EnTT -  3.7.0 +  3.8.0
    - + @@ -73,7 +73,7 @@ $(function() {

    This is the complete list of members for entt::basic_snapshot< Entity >, including all inherited members.

    - + @@ -83,7 +83,7 @@ $(function() {
    basic_snapshot(const basic_registry< entity_type > &source) noexceptentt::basic_snapshot< Entity >inline
    basic_snapshot(const basic_registry< entity_type > &source)entt::basic_snapshot< Entity >inline
    basic_snapshot(basic_snapshot &&)=defaultentt::basic_snapshot< Entity >
    component(Archive &archive) constentt::basic_snapshot< Entity >inline
    component(Archive &archive, It first, It last) constentt::basic_snapshot< Entity >inline
    diff --git a/classentt_1_1basic__snapshot.html b/classentt_1_1basic__snapshot.html index e6867f449..ed0aa375c 100644 --- a/classentt_1_1basic__snapshot.html +++ b/classentt_1_1basic__snapshot.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_snapshot< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,9 +89,9 @@ using 

    Public Member Functions

    basic_snapshot (const basic_registry< entity_type > &source) noexcept - Constructs an instance that is bound to a given registry. More...
    -  + basic_snapshot (const basic_registry< entity_type > &source) + Constructs an instance that is bound to a given registry. More...
     basic_snapshot (basic_snapshot &&)=default  Default move constructor.
    @@ -121,15 +121,15 @@ class entt::basic_snapshot< Entity > This type can be used in both cases if provided with a correctly configured output archive.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).

    Definition at line 34 of file snapshot.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_snapshot()

    + +

    ◆ basic_snapshot()

    @@ -149,7 +149,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -370,7 +370,7 @@ template<typename Entity >
    diff --git a/classentt_1_1basic__snapshot__loader-members.html b/classentt_1_1basic__snapshot__loader-members.html index 4761c7360..7e3ce1387 100644 --- a/classentt_1_1basic__snapshot__loader-members.html +++ b/classentt_1_1basic__snapshot__loader-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() {

    This is the complete list of members for entt::basic_snapshot_loader< Entity >, including all inherited members.

    - + @@ -83,7 +83,7 @@ $(function() {
    basic_snapshot_loader(basic_registry< entity_type > &source) noexceptentt::basic_snapshot_loader< Entity >inline
    basic_snapshot_loader(basic_registry< entity_type > &source)entt::basic_snapshot_loader< Entity >inline
    basic_snapshot_loader(basic_snapshot_loader &&)=defaultentt::basic_snapshot_loader< Entity >
    component(Archive &archive) constentt::basic_snapshot_loader< Entity >inline
    entities(Archive &archive) constentt::basic_snapshot_loader< Entity >inline
    diff --git a/classentt_1_1basic__snapshot__loader.html b/classentt_1_1basic__snapshot__loader.html index 17a6efa29..37220e662 100644 --- a/classentt_1_1basic__snapshot__loader.html +++ b/classentt_1_1basic__snapshot__loader.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_snapshot_loader< Entity > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,9 +89,9 @@ using 

    Public Member Functions

    basic_snapshot_loader (basic_registry< entity_type > &source) noexcept - Constructs an instance that is bound to a given registry. More...
    -  + basic_snapshot_loader (basic_registry< entity_type > &source) + Constructs an instance that is bound to a given registry. More...
     basic_snapshot_loader (basic_snapshot_loader &&)=default  Default move constructor.
    @@ -120,15 +120,15 @@ class entt::basic_snapshot_loader< Entity > An example of use is the implementation of a save/restore utility.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).

    Definition at line 166 of file snapshot.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_snapshot_loader()

    + +

    ◆ basic_snapshot_loader()

    @@ -148,7 +148,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -335,7 +335,7 @@ template<typename Entity >
    diff --git a/classentt_1_1basic__sparse__set-members.html b/classentt_1_1basic__sparse__set-members.html index 6ea0aa412..f96c08106 100644 --- a/classentt_1_1basic__sparse__set-members.html +++ b/classentt_1_1basic__sparse__set-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -67,51 +67,62 @@ $(function() {
    -
    entt::basic_sparse_set< Entity > Member List
    +
    entt::basic_sparse_set< Entity, Allocator > Member List
    -

    This is the complete list of members for entt::basic_sparse_set< Entity >, including all inherited members.

    +

    This is the complete list of members for entt::basic_sparse_set< Entity, Allocator >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    at(const size_type pos) constentt::basic_sparse_set< Entity >inline
    basic_sparse_set()=defaultentt::basic_sparse_set< Entity >
    basic_sparse_set(basic_sparse_set &&)=defaultentt::basic_sparse_set< Entity >
    begin() const noexceptentt::basic_sparse_set< Entity >inline
    capacity() const noexceptentt::basic_sparse_set< Entity >inline
    clear(void *ud=nullptr) noexceptentt::basic_sparse_set< Entity >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    data() const noexceptentt::basic_sparse_set< Entity >inline
    emplace(const entity_type entt)entt::basic_sparse_set< Entity >inline
    empty() const noexceptentt::basic_sparse_set< Entity >inline
    end() const noexceptentt::basic_sparse_set< Entity >inline
    entity_type typedefentt::basic_sparse_set< Entity >
    extent() const noexceptentt::basic_sparse_set< Entity >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    index(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    insert(It first, It last)entt::basic_sparse_set< Entity >inline
    iterator typedefentt::basic_sparse_set< Entity >
    operator=(basic_sparse_set &&)=defaultentt::basic_sparse_set< Entity >
    operator[](const size_type pos) constentt::basic_sparse_set< Entity >inline
    rbegin() const noexceptentt::basic_sparse_set< Entity >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity >inline
    rend() const noexceptentt::basic_sparse_set< Entity >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity >
    shrink_to_fit()entt::basic_sparse_set< Entity >inline
    size() const noexceptentt::basic_sparse_set< Entity >inline
    size_type typedefentt::basic_sparse_set< Entity >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity >inline
    sort_n(const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity >inline
    swap_and_pop(const std::size_t, void *)entt::basic_sparse_set< Entity >inlineprotectedvirtual
    swap_at(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity >inlineprotectedvirtual
    ~basic_sparse_set()=defaultentt::basic_sparse_set< Entity >virtual
    allocator_type typedefentt::basic_sparse_set< Entity, Allocator >
    at(const size_type pos) constentt::basic_sparse_set< Entity, Allocator >inline
    basic_sparse_set(deletion_policy pol, const allocator_type &alloc={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, Allocator >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, Allocator >inline
    begin() constentt::basic_sparse_set< Entity, Allocator >inline
    capacity() constentt::basic_sparse_set< Entity, Allocator >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
    compact()entt::basic_sparse_set< Entity, Allocator >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, Allocator >inline
    data() constentt::basic_sparse_set< Entity, Allocator >inline
    emplace(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, Allocator >inline
    empty() constentt::basic_sparse_set< Entity, Allocator >inline
    end() constentt::basic_sparse_set< Entity, Allocator >inline
    entity_type typedefentt::basic_sparse_set< Entity, Allocator >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
    extent() constentt::basic_sparse_set< Entity, Allocator >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, Allocator >inline
    in_place_pop(const Entity entt, [[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, Allocator >inline
    insert(It first, It last)entt::basic_sparse_set< Entity, Allocator >inline
    iterator typedefentt::basic_sparse_set< Entity, Allocator >
    move_and_pop([[maybe_unused]] const std::size_t from, [[maybe_unused]] const std::size_t to)entt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, Allocator >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, Allocator >inline
    pointer typedefentt::basic_sparse_set< Entity, Allocator >
    policy() constentt::basic_sparse_set< Entity, Allocator >inline
    rbegin() constentt::basic_sparse_set< Entity, Allocator >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, Allocator >inline
    rend() constentt::basic_sparse_set< Entity, Allocator >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, Allocator >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, Allocator >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, Allocator >
    shrink_to_fit()entt::basic_sparse_set< Entity, Allocator >inline
    size() constentt::basic_sparse_set< Entity, Allocator >inline
    size_type typedefentt::basic_sparse_set< Entity, Allocator >
    slot() constentt::basic_sparse_set< Entity, Allocator >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, Allocator >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, Allocator >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, Allocator >inline
    swap_and_pop(const Entity entt, [[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, Allocator >inlineprotectedvirtual
    ~basic_sparse_set()entt::basic_sparse_set< Entity, Allocator >inlinevirtual
    diff --git a/classentt_1_1basic__sparse__set.html b/classentt_1_1basic__sparse__set.html index a0b01318b..8bba2ca24 100644 --- a/classentt_1_1basic__sparse__set.html +++ b/classentt_1_1basic__sparse__set.html @@ -3,9 +3,9 @@ - + -EnTT: entt::basic_sparse_set< Entity > Class Template Reference +EnTT: entt::basic_sparse_set< Entity, Allocator > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { Protected Member Functions | List of all members
    -
    entt::basic_sparse_set< Entity > Class Template Reference
    +
    entt::basic_sparse_set< Entity, Allocator > Class Template Reference
    @@ -81,147 +81,171 @@ $(function() { More...

    #include <sparse_set.hpp>

    -
    -Inheritance diagram for entt::basic_sparse_set< Entity >:
    -
    -
    Inheritance graph
    - - - - -
    [legend]
    - - - - - - - - - - - - + + + + + + + + + + + + + + + + + +

    Public Types

    -using entity_type = Entity
     Underlying entity identifier.
     
    -using size_type = std::size_t
     Unsigned integer type.
     
    -using iterator = sparse_set_iterator
     Random access iterator type.
     
    -using reverse_iterator = const entity_type *
     Reverse iterator type.
     
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    basic_sparse_set ()=default
     Default constructor.
     
    basic_sparse_set (basic_sparse_set &&)=default
     Default move constructor.
     
    -virtual ~basic_sparse_set ()=default
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&)=default
     Default move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const noexcept
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    -void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const noexcept
     Returns the extent of a sparse set. More...
     
    size_type size () const noexcept
     Returns the number of elements in a sparse set. More...
     
    bool empty () const noexcept
     Checks whether a sparse set is empty. More...
     
    const entity_typedata () const noexcept
     Direct access to the internal packed array. More...
     
    iterator begin () const noexcept
     Returns an iterator to the beginning. More...
     
    iterator end () const noexcept
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const noexcept
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const noexcept
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    template<typename It >
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set. More...
     
    template<typename It >
    void remove (It first, It last, void *ud=nullptr)
     Removes multiple entities from a pool. More...
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort_n (const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr) noexcept
     Clears a sparse set. More...
     
     basic_sparse_set (deletion_policy pol, const allocator_type &alloc={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (const allocator_type &alloc={})
     Constructs an empty container with the given allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    template<typename It >
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    template<typename It >
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    template<typename It >
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    - - - - - - + + + + + + + + + + + +

    Protected Member Functions

    -virtual void swap_at (const std::size_t, const std::size_t)
     Swaps two entities in the internal packed array.
     
    -virtual void swap_and_pop (const std::size_t, void *)
     Attempts to remove an entity from the internal packed array.
     
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void move_and_pop ([[maybe_unused]] const std::size_t from, [[maybe_unused]] const std::size_t to)
     Moves an entity in the internal packed array. More...
     
    virtual void swap_and_pop (const Entity entt, [[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt, [[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     

    Detailed Description

    -

    template<typename Entity>
    -class entt::basic_sparse_set< Entity >

    +

    template<typename Entity, typename Allocator>
    +class entt::basic_sparse_set< Entity, Allocator >

    Basic sparse set implementation.

    Sparse set or packed array or whatever is the name users give it.
    @@ -231,28 +255,155 @@ class entt::basic_sparse_set< Entity >

    Note
    Internal data structures arrange elements to maximize performance. There are no guarantees that entities are returned in the insertion order when iterate a sparse set. Do not make assumption on the order in any case.
    Template Parameters
    - + +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    AllocatorType of allocator used to manage memory and elements.
    -

    Definition at line 43 of file sparse_set.hpp.

    -

    Member Function Documentation

    - -

    ◆ at()

    +

    Definition at line 53 of file sparse_set.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_sparse_set() [1/3]

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    + + +
    - + - + + + + + + + + + + + + + + +
    entity_type entt::basic_sparse_set< Entity >::at entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (const size_type deletion_policy pol,
    const allocator_typealloc = {} 
    )
    +
    +inlineexplicit
    +
    + +

    Constructs an empty container with the given policy and allocator.

    +
    Parameters
    + + + +
    polType of deletion policy.
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 295 of file sparse_set.hpp.

    + +
    +
    + +

    ◆ basic_sparse_set() [2/3]

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (const allocator_typealloc = {})
    +
    +inlineexplicit
    +
    + +

    Constructs an empty container with the given allocator.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 311 of file sparse_set.hpp.

    + +
    +
    + +

    ◆ basic_sparse_set() [3/3]

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_sparse_set< Entity, Allocator >::basic_sparse_set (basic_sparse_set< Entity, Allocator > && other)
    +
    +inline
    +
    + +

    Move constructor.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    + +

    Definition at line 319 of file sparse_set.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ at()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + +
    + + + + + @@ -273,23 +424,23 @@ template<typename Entity >
    Returns
    The entity at specified location if any, a null entity otherwise.
    -

    Definition at line 385 of file sparse_set.hpp.

    +

    Definition at line 544 of file sparse_set.hpp.

    - -

    ◆ begin()

    + +

    ◆ begin()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    entity_type entt::basic_sparse_set< Entity, Allocator >::at (const size_type  pos) const
    +inline
    - + @@ -297,32 +448,32 @@ template<typename Entity >
    iterator entt::basic_sparse_set< Entity >::begin iterator entt::basic_sparse_set< Entity, Allocator >::begin ( ) const
    -inlinenoexcept

    Returns an iterator to the beginning.

    -

    The returned iterator points to the first entity of the internal packed array. If the sparse set is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first entity of the internal packed array. If the sparse set is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first entity of the internal packed array.
    -

    Definition at line 297 of file sparse_set.hpp.

    +

    Definition at line 456 of file sparse_set.hpp.

    - -

    ◆ capacity()

    + +

    ◆ capacity()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + @@ -330,7 +481,7 @@ template<typename Entity >
    size_type entt::basic_sparse_set< Entity >::capacity size_type entt::basic_sparse_set< Entity, Allocator >::capacity ( ) const
    -inlinenoexcept
    @@ -338,23 +489,23 @@ template<typename Entity >

    Returns the number of elements that a sparse set has currently allocated space for.

    Returns
    Capacity of the sparse set.
    -

    Definition at line 221 of file sparse_set.hpp.

    +

    Definition at line 392 of file sparse_set.hpp.

    - -

    ◆ clear()

    + +

    ◆ clear()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + @@ -363,7 +514,7 @@ template<typename Entity >
    void entt::basic_sparse_set< Entity >::clear void entt::basic_sparse_set< Entity, Allocator >::clear ( void *  ud = nullptr)
    -inlinenoexcept
    @@ -376,25 +527,25 @@ template<typename Entity >
    -

    Definition at line 606 of file sparse_set.hpp.

    +

    Definition at line 843 of file sparse_set.hpp.

    - -

    ◆ contains()

    + +

    ◆ contains()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + - + @@ -415,23 +566,23 @@ template<typename Entity >
    Returns
    True if the sparse set contains the entity, false otherwise.
    -

    Definition at line 359 of file sparse_set.hpp.

    +

    Definition at line 517 of file sparse_set.hpp.

    - -

    ◆ data()

    + +

    ◆ data()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    bool entt::basic_sparse_set< Entity >::contains bool entt::basic_sparse_set< Entity, Allocator >::contains (const entity_type const entity_type  entt) const
    +inline
    - + @@ -439,35 +590,33 @@ template<typename Entity >
    const entity_type* entt::basic_sparse_set< Entity >::data pointer entt::basic_sparse_set< Entity, Allocator >::data ( ) const
    -inlinenoexcept

    Direct access to the internal packed array.

    -

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    -
    Note
    Entities are in the reverse order as returned by the begin/end iterators.
    Returns
    A pointer to the internal packed array.
    -

    Definition at line 284 of file sparse_set.hpp.

    +

    Definition at line 443 of file sparse_set.hpp.

    - -

    ◆ emplace()

    + +

    ◆ emplace()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + - + @@ -487,24 +636,65 @@ template<typename Entity >
    void entt::basic_sparse_set< Entity >::emplace size_type entt::basic_sparse_set< Entity, Allocator >::emplace (const entity_type const entity_type  entt)
    +
    Returns
    The slot used for insertion.
    -

    Definition at line 408 of file sparse_set.hpp.

    +

    Definition at line 591 of file sparse_set.hpp.

    - -

    ◆ empty()

    + +

    ◆ emplace_back()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    + + +
    - + + + + + + +
    bool entt::basic_sparse_set< Entity >::empty size_type entt::basic_sparse_set< Entity, Allocator >::emplace_back (const entity_type entt)
    +
    +inline
    +
    + +

    Appends an entity to a sparse set.

    +
    Warning
    Attempting to assign an entity that already belongs to the sparse set results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The slot used for insertion.
    + +

    Definition at line 568 of file sparse_set.hpp.

    + +
    + + +

    ◆ empty()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + +inline
    + + + @@ -512,7 +702,7 @@ template<typename Entity >
    bool entt::basic_sparse_set< Entity, Allocator >::empty ( ) const
    -inlinenoexcept
    @@ -520,23 +710,23 @@ template<typename Entity >

    Checks whether a sparse set is empty.

    Returns
    True if the sparse set is empty, false otherwise.
    -

    Definition at line 268 of file sparse_set.hpp.

    +

    Definition at line 435 of file sparse_set.hpp.

    - -

    ◆ end()

    + +

    ◆ end()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + @@ -544,7 +734,7 @@ template<typename Entity >
    iterator entt::basic_sparse_set< Entity >::end iterator entt::basic_sparse_set< Entity, Allocator >::end ( ) const
    -inlinenoexcept
    @@ -553,23 +743,138 @@ template<typename Entity >

    The returned iterator points to the element following the last entity in the internal packed array. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the element following the last entity of the internal packed array.
    -

    Definition at line 312 of file sparse_set.hpp.

    +

    Definition at line 470 of file sparse_set.hpp.

    - -

    ◆ extent()

    + +

    ◆ erase() [1/2]

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    + + +
    - + + + + + + + + + + + + + + + + +
    size_type entt::basic_sparse_set< Entity >::extent void entt::basic_sparse_set< Entity, Allocator >::erase (const entity_type entt,
    void * ud = nullptr 
    )
    +
    +inline
    +
    + +

    Erases an entity from a sparse set.

    +
    Warning
    Attempting to erase an entity that doesn't belong to the sparse set results in undefined behavior.
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 636 of file sparse_set.hpp.

    + +
    + + +

    ◆ erase() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_sparse_set< Entity, Allocator >::erase (It first,
    It last,
    void * ud = nullptr 
    )
    +
    +inline
    +
    + +

    Erases entities from a set.

    +
    See also
    erase
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 652 of file sparse_set.hpp.

    + +
    +
    + +

    ◆ extent()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + +inline
    + + + @@ -577,7 +882,7 @@ template<typename Entity >
    size_type entt::basic_sparse_set< Entity, Allocator >::extent ( ) const
    -inlinenoexcept
    @@ -586,25 +891,25 @@ template<typename Entity >

    The extent of a sparse set is also the size of the internal sparse array. There is no guarantee that the internal packed array has the same size. Usually the size of the internal sparse array is equal or greater than the one of the internal packed array.

    Returns
    Extent of the sparse set.
    -

    Definition at line 246 of file sparse_set.hpp.

    +

    Definition at line 413 of file sparse_set.hpp.

    - -

    ◆ find()

    + +

    ◆ find()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    - + - + @@ -625,25 +930,74 @@ template<typename Entity >
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    -

    Definition at line 350 of file sparse_set.hpp.

    +

    Definition at line 508 of file sparse_set.hpp.

    - -

    ◆ index()

    + +

    ◆ in_place_pop()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    iterator entt::basic_sparse_set< Entity >::find iterator entt::basic_sparse_set< Entity, Allocator >::find (const entity_type const entity_type  entt) const
    + + +
    - + - + + + + + + + + + + + + + + +
    size_type entt::basic_sparse_set< Entity >::index virtual void entt::basic_sparse_set< Entity, Allocator >::in_place_pop (const entity_type const Entity entt,
    [[maybe_unused] ] void * ud 
    )
    +
    +inlineprotectedvirtual
    +
    + +

    Attempts to erase an entity from the internal packed array.

    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 266 of file sparse_set.hpp.

    + +
    + + +

    ◆ index()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + +inline
    + + + + + @@ -665,17 +1019,17 @@ template<typename Entity >
    Returns
    The position of the entity in the sparse set.
    -

    Definition at line 375 of file sparse_set.hpp.

    +

    Definition at line 534 of file sparse_set.hpp.

    - -

    ◆ insert()

    + +

    ◆ insert()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    template<typename It >
    size_type entt::basic_sparse_set< Entity, Allocator >::index (const entity_type  entt) const
    @@ -683,7 +1037,7 @@ template<typename It >
    - + @@ -723,56 +1077,113 @@ template<typename It > -

    Definition at line 426 of file sparse_set.hpp.

    +

    Definition at line 615 of file sparse_set.hpp.

    - -

    ◆ operator=()

    + +

    ◆ move_and_pop()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    void entt::basic_sparse_set< Entity >::insert void entt::basic_sparse_set< Entity, Allocator >::insert ( It  first,
    + + +
    - + - - + + + + + + + + + + + + + + +
    basic_sparse_set& entt::basic_sparse_set< Entity >::operator= virtual void entt::basic_sparse_set< Entity, Allocator >::move_and_pop (basic_sparse_set< Entity > && )[[maybe_unused] ] const std::size_t from,
    [[maybe_unused] ] const std::size_t to 
    )
    +
    +inlineprotectedvirtual
    +
    + +

    Moves an entity in the internal packed array.

    +
    Parameters
    + + + +
    fromA valid position of an entity within storage.
    toA valid position of an entity within storage.
    +
    +
    + +

    Definition at line 240 of file sparse_set.hpp.

    + +
    + + +

    ◆ operator=()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + +inline
    + + + + + +
    basic_sparse_set& entt::basic_sparse_set< Entity, Allocator >::operator= (basic_sparse_set< Entity, Allocator > && other)
    -default
    -

    Default move assignment operator.

    +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    Returns
    This sparse set.
    +

    Definition at line 341 of file sparse_set.hpp.

    +
    - -

    ◆ operator[]()

    + +

    ◆ operator[]()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    @@ -30,10 +30,10 @@
    - + - + @@ -793,23 +1204,23 @@ template<typename Entity >
    Returns
    The entity at specified location.
    -

    Definition at line 394 of file sparse_set.hpp.

    +

    Definition at line 553 of file sparse_set.hpp.

    - -

    ◆ rbegin()

    + +

    ◆ policy()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    entity_type entt::basic_sparse_set< Entity >::operator[] entity_type entt::basic_sparse_set< Entity, Allocator >::operator[] (const size_type const size_type  pos) const
    +inline
    - + @@ -817,34 +1228,66 @@ template<typename Entity >
    reverse_iterator entt::basic_sparse_set< Entity >::rbegin deletion_policy entt::basic_sparse_set< Entity, Allocator >::policy ( ) const
    -inlinenoexcept
    -

    Returns a reverse iterator to the beginning.

    -

    The returned iterator points to the first entity of the reversed internal packed array. If the sparse set is empty, the returned iterator will be equal to rend().

    -
    Returns
    An iterator to the first entity of the reversed internal packed array.
    +

    Returns the deletion policy of a sparse set.

    +
    Returns
    The deletion policy of the sparse set.
    -

    Definition at line 326 of file sparse_set.hpp.

    +

    Definition at line 361 of file sparse_set.hpp.

    - -

    ◆ remove() [1/2]

    + +

    ◆ rbegin()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    + + +
    - + - + + + +
    void entt::basic_sparse_set< Entity >::remove reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rbegin (const entity_type ) const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first entity of the reversed internal packed array. If the sparse set is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed internal packed array.
    + +

    Definition at line 484 of file sparse_set.hpp.

    + +
    + + +

    ◆ remove() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + +inline
    + + + + + @@ -866,8 +1309,7 @@ template<typename Entity >
    bool entt::basic_sparse_set< Entity, Allocator >::remove (const entity_type  entt,
    -

    Removes an entity from a sparse set.

    -
    Warning
    Attempting to remove an entity that doesn't belong to the sparse set results in undefined behavior.
    +

    Removes an entity from a sparse set if it exists.

    Parameters
    @@ -875,18 +1317,19 @@ template<typename Entity >
    enttA valid entity identifier.
    +
    Returns
    True if the entity is actually removed, false otherwise.
    -

    Definition at line 446 of file sparse_set.hpp.

    +

    Definition at line 664 of file sparse_set.hpp.

    - -

    ◆ remove() [2/2]

    + +

    ◆ remove() [2/2]

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    template<typename It >
    @@ -894,7 +1337,7 @@ template<typename It >
    - + @@ -924,7 +1367,7 @@ template<typename It >
    void entt::basic_sparse_set< Entity >::remove size_type entt::basic_sparse_set< Entity, Allocator >::remove ( It  first,
    -

    Removes multiple entities from a pool.

    +

    Removes entities from a sparse set if they exist.

    Template Parameters
    @@ -939,24 +1382,25 @@ template<typename It >
    ItType of input iterator.
    +
    Returns
    The number of entities actually removed.
    -

    Definition at line 471 of file sparse_set.hpp.

    +

    Definition at line 677 of file sparse_set.hpp.

    - -

    ◆ rend()

    + +

    ◆ rend()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + @@ -964,7 +1408,7 @@ template<typename Entity >
    reverse_iterator entt::basic_sparse_set< Entity >::rend reverse_iterator entt::basic_sparse_set< Entity, Allocator >::rend ( ) const
    -inlinenoexcept
    @@ -973,25 +1417,25 @@ template<typename Entity >

    The returned iterator points to the element following the last entity in the reversed internal packed array. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the element following the last entity of the reversed internal packed array.
    -

    Definition at line 340 of file sparse_set.hpp.

    +

    Definition at line 498 of file sparse_set.hpp.

    - -

    ◆ reserve()

    + +

    ◆ reserve()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    +inline
    - + - + @@ -1012,25 +1456,25 @@ template<typename Entity > -

    Definition at line 212 of file sparse_set.hpp.

    +

    Definition at line 381 of file sparse_set.hpp.

    - -

    ◆ respect()

    + +

    ◆ respect()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    void entt::basic_sparse_set< Entity >::reserve void entt::basic_sparse_set< Entity, Allocator >::reserve (const size_type const size_type  cap)
    +inline
    - + - + @@ -1053,23 +1497,23 @@ template<typename Entity > -

    Definition at line 583 of file sparse_set.hpp.

    +

    Definition at line 821 of file sparse_set.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    void entt::basic_sparse_set< Entity >::respect void entt::basic_sparse_set< Entity, Allocator >::respect (const basic_sparse_set< Entity > & const basic_sparse_set< Entity, Allocator > &  other)
    +inline
    - + @@ -1077,7 +1521,7 @@ template<typename Entity >
    size_type entt::basic_sparse_set< Entity >::size size_type entt::basic_sparse_set< Entity, Allocator >::size ( ) const
    -inlinenoexcept
    @@ -1086,17 +1530,49 @@ template<typename Entity >

    The number of elements is also the size of the internal packed array. There is no guarantee that the internal sparse array has the same size. Usually the size of the internal sparse array is equal or greater than the one of the internal packed array.

    Returns
    Number of elements.
    -

    Definition at line 260 of file sparse_set.hpp.

    +

    Definition at line 427 of file sparse_set.hpp.

    - -

    ◆ sort()

    + +

    ◆ slot()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    + + + + + +
    + + + + + + + +
    size_type entt::basic_sparse_set< Entity, Allocator >::slot () const
    +
    +inline
    +
    + +

    Returns the next slot available for insertion.

    +
    Returns
    The next slot available for insertion.
    + +

    Definition at line 369 of file sparse_set.hpp.

    + +
    + + +

    ◆ sort()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    template<typename Compare , typename Sort = std_sort, typename... Args>
    @@ -1104,7 +1580,7 @@ template<typename Compare , typename Sort = std_sort, typename... Args> <
    - + @@ -1135,7 +1611,7 @@ template<typename Compare , typename Sort = std_sort, typename... Args> <

    Sort all elements according to the given comparison function.

    -
    See also
    sort_n
    +
    See also
    sort_n
    Template Parameters
    void entt::basic_sparse_set< Entity >::sort void entt::basic_sparse_set< Entity, Allocator >::sort ( Compare  compare,
    @@ -1153,17 +1629,17 @@ template<typename Compare , typename Sort = std_sort, typename... Args> < -

    Definition at line 564 of file sparse_set.hpp.

    +

    Definition at line 802 of file sparse_set.hpp.

    - -

    ◆ sort_n()

    + +

    ◆ sort_n()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    template<typename Compare , typename Sort = std_sort, typename... Args>
    CompareType of comparison function object.
    @@ -1171,10 +1647,10 @@ template<typename Compare , typename Sort = std_sort, typename... Args> < @@ -30,10 +30,10 @@
    - + - - + + @@ -1227,7 +1703,7 @@ template<typename Compare , typename Sort = std_sort, typename... Args> <
    Parameters
    void entt::basic_sparse_set< Entity >::sort_n void entt::basic_sparse_set< Entity, Allocator >::sort_n (const size_type count, const size_type length,
    - + @@ -1235,31 +1711,31 @@ template<typename Compare , typename Sort = std_sort, typename... Args> < -

    Definition at line 529 of file sparse_set.hpp.

    +

    Definition at line 767 of file sparse_set.hpp.

    - -

    ◆ swap()

    + +

    ◆ swap()

    -template<typename Entity >
    +template<typename Entity , typename Allocator >
    countNumber of elements to sort.
    lengthNumber of elements to sort.
    compareA valid comparison function object.
    algoA valid sort function object.
    argsArguments to forward to the sort function object, if any.
    @@ -30,10 +30,10 @@
    - + - + - + @@ -1286,7 +1762,105 @@ template<typename Entity > -

    Definition at line 490 of file sparse_set.hpp.

    +

    Definition at line 720 of file sparse_set.hpp.

    + + + + +

    ◆ swap_and_pop()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    +
    void entt::basic_sparse_set< Entity >::swap void entt::basic_sparse_set< Entity, Allocator >::swap (const entity_type const entity_type  lhs,
    const entity_type const entity_type  rhs 
    + + + + +
    + + + + + + + + + + + + + + + + + + +
    virtual void entt::basic_sparse_set< Entity, Allocator >::swap_and_pop (const Entity entt,
    [[maybe_unused] ] void * ud 
    )
    +
    +inlineprotectedvirtual
    +
    + +

    Attempts to erase an entity from the internal packed array.

    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 247 of file sparse_set.hpp.

    + +
    + + +

    ◆ swap_at()

    + +
    +
    +
    +template<typename Entity , typename Allocator >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    virtual void entt::basic_sparse_set< Entity, Allocator >::swap_at ([[maybe_unused] ] const std::size_t lhs,
    [[maybe_unused] ] const std::size_t rhs 
    )
    +
    +inlineprotectedvirtual
    +
    + +

    Swaps two entities in the internal packed array.

    +
    Parameters
    + + + +
    lhsA valid position of an entity within storage.
    rhsA valid position of an entity within storage.
    +
    +
    + +

    Definition at line 233 of file sparse_set.hpp.

    @@ -1297,7 +1871,7 @@ template<typename Entity > diff --git a/classentt_1_1basic__sparse__set__inherit__graph.map b/classentt_1_1basic__sparse__set__inherit__graph.map deleted file mode 100644 index 41d0817bf..000000000 --- a/classentt_1_1basic__sparse__set__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/classentt_1_1basic__sparse__set__inherit__graph.md5 b/classentt_1_1basic__sparse__set__inherit__graph.md5 deleted file mode 100644 index c9650537a..000000000 --- a/classentt_1_1basic__sparse__set__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -912695cf23c393ebe47a75006096aa3d \ No newline at end of file diff --git a/classentt_1_1basic__sparse__set__inherit__graph.png b/classentt_1_1basic__sparse__set__inherit__graph.png deleted file mode 100644 index 884f4db11..000000000 Binary files a/classentt_1_1basic__sparse__set__inherit__graph.png and /dev/null differ diff --git a/classentt_1_1basic__storage-members.html b/classentt_1_1basic__storage-members.html index 7b60eab35..e765618a1 100644 --- a/classentt_1_1basic__storage-members.html +++ b/classentt_1_1basic__storage-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -67,49 +67,92 @@ $(function() {
    -
    entt::basic_storage< Entity, Type, typename > Member List
    +
    entt::basic_storage< Entity, Type, Allocator, typename > Member List
    -

    This is the complete list of members for entt::basic_storage< Entity, Type, typename >, including all inherited members.

    +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, typename >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    begin() const noexceptentt::basic_storage< Entity, Type, typename >inline
    begin() noexceptentt::basic_storage< Entity, Type, typename >inline
    cbegin() const noexceptentt::basic_storage< Entity, Type, typename >inline
    cend() const noexceptentt::basic_storage< Entity, Type, typename >inline
    const_iterator typedefentt::basic_storage< Entity, Type, typename >
    const_reverse_iterator typedefentt::basic_storage< Entity, Type, typename >
    crbegin() const noexceptentt::basic_storage< Entity, Type, typename >inline
    crend() const noexceptentt::basic_storage< Entity, Type, typename >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, typename >inline
    end() const noexceptentt::basic_storage< Entity, Type, typename >inline
    end() noexceptentt::basic_storage< Entity, Type, typename >inline
    entity_type typedefentt::basic_storage< Entity, Type, typename >
    get(const entity_type entt) constentt::basic_storage< Entity, Type, typename >inline
    get(const entity_type entt)entt::basic_storage< Entity, Type, typename >inline
    insert(It first, It last, const value_type &value={})entt::basic_storage< Entity, Type, typename >inline
    insert(EIt first, EIt last, CIt from, CIt to)entt::basic_storage< Entity, Type, typename >inline
    iterator typedefentt::basic_storage< Entity, Type, typename >
    patch(const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, typename >inline
    raw() const noexceptentt::basic_storage< Entity, Type, typename >inline
    raw() noexceptentt::basic_storage< Entity, Type, typename >inline
    rbegin() const noexceptentt::basic_storage< Entity, Type, typename >inline
    rbegin() noexceptentt::basic_storage< Entity, Type, typename >inline
    rend() const noexceptentt::basic_storage< Entity, Type, typename >inline
    rend() noexceptentt::basic_storage< Entity, Type, typename >inline
    reserve(const size_type cap)entt::basic_storage< Entity, Type, typename >inline
    reverse_iterator typedefentt::basic_storage< Entity, Type, typename >
    shrink_to_fit()entt::basic_storage< Entity, Type, typename >inline
    size_type typedefentt::basic_storage< Entity, Type, typename >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_storage< Entity, Type, typename >inline
    sort_n(const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_storage< Entity, Type, typename >inline
    swap_and_pop(const std::size_t pos, void *)entt::basic_storage< Entity, Type, typename >inlineprotected
    swap_at(const std::size_t lhs, const std::size_t rhs)entt::basic_storage< Entity, Type, typename >inlineprotected
    value_type typedefentt::basic_storage< Entity, Type, typename >
    allocator_type typedefentt::basic_storage< Entity, Type, Allocator, typename >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    base_type typedefentt::basic_storage< Entity, Type, Allocator, typename >
    basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage()entt::basic_storage< Entity, Type, Allocator, typename >inline
    basic_storage(const allocator_type &allocator)entt::basic_storage< Entity, Type, Allocator, typename >inlineexplicit
    basic_storage(basic_storage &&other)entt::basic_storage< Entity, Type, Allocator, typename >inline
    begin() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    begin()entt::basic_storage< Entity, Type, Allocator, typename >inline
    capacity() const overrideentt::basic_storage< Entity, Type, Allocator, typename >inlinevirtual
    cbegin() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    cend() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    const_iterator typedefentt::basic_storage< Entity, Type, Allocator, typename >
    const_pointer typedefentt::basic_storage< Entity, Type, Allocator, typename >
    const_reverse_iterator typedefentt::basic_storage< Entity, Type, Allocator, typename >
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    crbegin() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    crend() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    end()entt::basic_storage< Entity, Type, Allocator, typename >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, typename >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get(const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, typename >inline
    get(const entity_type entt)entt::basic_storage< Entity, Type, Allocator, typename >inline
    get_allocator() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    get_as_tuple(const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, typename >inline
    get_as_tuple(const entity_type entt)entt::basic_storage< Entity, Type, Allocator, typename >inline
    in_place_pop(const Entity entt, void *ud) overrideentt::basic_storage< Entity, Type, Allocator, typename >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &value={})entt::basic_storage< Entity, Type, Allocator, typename >inline
    insert(EIt first, EIt last, CIt from)entt::basic_storage< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_storage< Entity, Type, Allocator, typename >
    move_and_pop(const std::size_t from, const std::size_t to) finalentt::basic_storage< Entity, Type, Allocator, typename >inlineprotectedvirtual
    operator=(basic_storage &&other)entt::basic_storage< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch(const entity_type entt, Func &&... func)entt::basic_storage< Entity, Type, Allocator, typename >inline
    pointer typedefentt::basic_storage< Entity, Type, Allocator, typename >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    raw() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    raw()entt::basic_storage< Entity, Type, Allocator, typename >inline
    rbegin() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    rbegin()entt::basic_storage< Entity, Type, Allocator, typename >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_storage< Entity, Type, Allocator, typename >inline
    rend()entt::basic_storage< Entity, Type, Allocator, typename >inline
    reserve(const size_type cap) overrideentt::basic_storage< Entity, Type, Allocator, typename >inlinevirtual
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_storage< Entity, Type, Allocator, typename >
    shrink_to_fit() overrideentt::basic_storage< Entity, Type, Allocator, typename >inlinevirtual
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, typename >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt, void *ud) overrideentt::basic_storage< Entity, Type, Allocator, typename >inlineprotectedvirtual
    swap_at(const std::size_t lhs, const std::size_t rhs) finalentt::basic_storage< Entity, Type, Allocator, typename >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, typename >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    ~basic_storage() overrideentt::basic_storage< Entity, Type, Allocator, typename >inline
    diff --git a/classentt_1_1basic__storage.html b/classentt_1_1basic__storage.html index 091665a87..c8b3e09af 100644 --- a/classentt_1_1basic__storage.html +++ b/classentt_1_1basic__storage.html @@ -3,9 +3,9 @@ - + -EnTT: entt::basic_storage< Entity, Type, typename > Class Template Reference +EnTT: entt::basic_storage< Entity, Type, Allocator, typename > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -73,7 +73,7 @@ $(function() { Protected Member Functions | List of all members
    -
    entt::basic_storage< Entity, Type, typename > Class Template Reference
    +
    entt::basic_storage< Entity, Type, Allocator, typename > Class Template Reference
    @@ -81,196 +81,436 @@ $(function() { More...

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, typename >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, typename >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Types

    -using value_type = Type
     Type of the objects assigned to entities.
     
    -using entity_type = Entity
     Underlying entity identifier.
     
    -using size_type = std::size_t
     Unsigned integer type.
     
    -using iterator = storage_iterator< Type >
     Random access iterator type.
     
    -using const_iterator = storage_iterator< const Type >
     Constant random access iterator type.
     
    -using reverse_iterator = Type *
     Reverse iterator type.
     
    -using const_reverse_iterator = const Type *
     Constant reverse iterator type.
     
    +using base_type = basic_sparse_set< Entity, typename allocator_traits::template rebind_alloc< Entity > >
     Base type.
     
    +using allocator_type = Allocator
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_ptr_pointer
     Pointer type to contained elements.
     
    +using const_pointer = alloc_ptr_const_pointer
     Constant pointer type to contained elements.
     
    +using iterator = storage_iterator< value_type >
     Random access iterator type.
     
    +using const_iterator = storage_iterator< const value_type >
     Constant random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    +using const_reverse_iterator = std::reverse_iterator< const_iterator >
     Constant reverse iterator type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = std::allocator_traits< Allocator >::template rebind_alloc< Entity >
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    void reserve (const size_type cap)
     Increases the capacity of a storage. More...
     
    -void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    const value_typeraw () const noexcept
     Direct access to the array of objects. More...
     
    value_typeraw () noexcept
     Direct access to the array of objects. More...
     
    const_iterator cbegin () const noexcept
     Returns an iterator to the beginning. More...
     
    const_iterator begin () const noexcept
     Returns an iterator to the beginning. More...
     
    iterator begin () noexcept
     Returns an iterator to the beginning. More...
     
    const_iterator cend () const noexcept
     Returns an iterator to the end. More...
     
    const_iterator end () const noexcept
     Returns an iterator to the end. More...
     
    iterator end () noexcept
     Returns an iterator to the end. More...
     
    const_reverse_iterator crbegin () const noexcept
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator rbegin () const noexcept
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rbegin () noexcept
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator crend () const noexcept
     Returns a reverse iterator to the end. More...
     
    const_reverse_iterator rend () const noexcept
     Returns a reverse iterator to the end. More...
     
    reverse_iterator rend () noexcept
     Returns a reverse iterator to the end. More...
     
    const value_typeget (const entity_type entt) const
     Returns the object assigned to an entity. More...
     
    value_typeget (const entity_type entt)
     Returns the object assigned to an entity. More...
     
    template<typename... Args>
    value_typeemplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    decltype(auto) patch (const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &value={})
     Assigns one or more entities to a storage and constructs their objects from a given instance. More...
     
    template<typename EIt , typename CIt >
    void insert (EIt first, EIt last, CIt from, CIt to)
     Assigns one or more entities to a storage and constructs their objects from a given range. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort_n (const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort elements according to the given comparison function. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    basic_storage ()
     Default constructor.
     
     basic_storage (const allocator_type &allocator)
     Constructs an empty storage with a given allocator. More...
     
     basic_storage (basic_storage &&other)
     Move constructor. More...
     
    ~basic_storage () override
     Default destructor.
     
    basic_storageoperator= (basic_storage &&other)
     Move assignment operator. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    void reserve (const size_type cap) override
     Increases the capacity of a storage. More...
     
    size_type capacity () const override
     Returns the number of elements that a storage has currently allocated space for. More...
     
    +void shrink_to_fit () override
     Requests the removal of unused capacity.
     
    const_pointer raw () const
     Direct access to the array of objects. More...
     
    pointer raw ()
     Direct access to the array of objects. More...
     
    const_iterator cbegin () const
     Returns an iterator to the beginning. More...
     
    const_iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator begin ()
     Returns an iterator to the beginning. More...
     
    const_iterator cend () const
     Returns an iterator to the end. More...
     
    const_iterator end () const
     Returns an iterator to the end. More...
     
    iterator end ()
     Returns an iterator to the end. More...
     
    const_reverse_iterator crbegin () const
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rbegin ()
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator crend () const
     Returns a reverse iterator to the end. More...
     
    const_reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    reverse_iterator rend ()
     Returns a reverse iterator to the end. More...
     
    const value_typeget (const entity_type entt) const
     Returns the object assigned to an entity. More...
     
    value_typeget (const entity_type entt)
     Returns the object assigned to an entity. More...
     
    std::tuple< const value_type & > get_as_tuple (const entity_type entt) const
     Returns the object assigned to an entity as a tuple. More...
     
    std::tuple< value_type & > get_as_tuple (const entity_type entt)
     Returns the object assigned to an entity as a tuple. More...
     
    template<typename... Args>
    value_typeemplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    value_typepatch (const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &value={})
     Assigns one or more entities to a storage and constructs their objects from a given instance. More...
     
    template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, value_type>>>
    void insert (EIt first, EIt last, CIt from)
     Assigns one or more entities to a storage and constructs their objects from a given range. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    basic_sparse_set ()
     Default constructor.
     
     basic_sparse_set (const allocator_type &allocator)
     Constructs an empty container with a given allocator. More...
     
     basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    - - - - - - + + + + + + + + + + + +

    Protected Member Functions

    void swap_at (const std::size_t lhs, const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    void swap_and_pop (const std::size_t pos, void *)
     Attempts to remove an entity from the internal packed array. More...
     
    void swap_at (const std::size_t lhs, const std::size_t rhs) final
     Swaps two entities in the internal packed array. More...
     
    void move_and_pop (const std::size_t from, const std::size_t to) final
     Moves an entity in the internal packed array. More...
     
    void swap_and_pop (const Entity entt, void *ud) override
     Attempts to erase an entity from the internal packed array. More...
     
    void in_place_pop (const Entity entt, void *ud) override
     Attempts to erase an entity from the internal packed array. More...
     

    Detailed Description

    -

    template<typename Entity, typename Type, typename = void>
    -class entt::basic_storage< Entity, Type, typename >

    +

    template<typename Entity, typename Type, typename Allocator, typename>
    +class entt::basic_storage< Entity, Type, Allocator, typename >

    Basic storage implementation.

    This class is a refinement of a sparse set that associates an object to an entity. The main purpose of this class is to extend sparse sets to store components in a registry. It guarantees fast access both to the elements and to the entities.

    -
    Note
    Entities and objects have the same order. It's guaranteed both in case of raw access (either to entities or objects) and when using random or input access iterators.
    +
    Note
    Entities and objects have the same order.
    Internal data structures arrange elements to maximize performance. There are no guarantees that objects are returned in the insertion order when iterate a storage. Do not make assumption on the order in any case.
    Warning
    Empty types aren't explicitly instantiated. Therefore, many of the functions normally available for non-empty types will not be available for empty ones.
    See also
    sparse_set<Entity>
    Template Parameters
    - + +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects assigned to the entities.
    AllocatorType of allocator used to manage memory and elements.
    -

    Definition at line 52 of file storage.hpp.

    -

    Member Function Documentation

    - -

    ◆ begin() [1/2]

    +

    Definition at line 53 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage() [1/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inlineexplicit
    - + - - + + +
    const_iterator entt::basic_storage< Entity, Type, typename >::begin entt::basic_storage< Entity, Type, Allocator, typename >::basic_storage () constconst allocator_typeallocator)
    -inlinenoexcept
    -

    Returns an iterator to the beginning.

    -

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    -
    Returns
    An iterator to the first instance of the internal array.
    +

    Constructs an empty storage with a given allocator.

    +
    Parameters
    + + +
    allocatorthe allocator to use.
    +
    +
    -

    Definition at line 251 of file storage.hpp.

    +

    Definition at line 353 of file storage.hpp.

    - -

    ◆ begin() [2/2]

    + +

    ◆ basic_storage() [2/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + +
    - + + + + + + +
    iterator entt::basic_storage< Entity, Type, typename >::begin entt::basic_storage< Entity, Type, Allocator, typename >::basic_storage (basic_storage< Entity, Type, Allocator, typename > && other)
    +
    +inline
    +
    + +

    Move constructor.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    + +

    Definition at line 363 of file storage.hpp.

    + +
    + +

    Member Function Documentation

    + +

    ◆ begin() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + +inline
    + + + @@ -278,32 +518,32 @@ template<typename Entity , typename Type , typename = void>
    iterator entt::basic_storage< Entity, Type, Allocator, typename >::begin ( )
    -inlinenoexcept

    Returns an iterator to the beginning.

    -

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first instance of the internal array.
    -

    Definition at line 256 of file storage.hpp.

    +

    Definition at line 461 of file storage.hpp.

    - -

    ◆ cbegin()

    + +

    ◆ begin() [2/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inline
    - + @@ -311,32 +551,32 @@ template<typename Entity , typename Type , typename = void>
    const_iterator entt::basic_storage< Entity, Type, typename >::cbegin const_iterator entt::basic_storage< Entity, Type, Allocator, typename >::begin ( ) const
    -inlinenoexcept

    Returns an iterator to the beginning.

    -

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first instance of the internal array.
    -

    Definition at line 245 of file storage.hpp.

    +

    Definition at line 456 of file storage.hpp.

    - -

    ◆ cend()

    + +

    ◆ capacity()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inlineoverridevirtual + +
    - + @@ -344,7 +584,74 @@ template<typename Entity , typename Type , typename = void>
    const_iterator entt::basic_storage< Entity, Type, typename >::cend size_type entt::basic_storage< Entity, Type, Allocator, typename >::capacity ( ) const
    -inlinenoexcept
    +
    + +

    Returns the number of elements that a storage has currently allocated space for.

    +
    Returns
    Capacity of the storage.
    + +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 419 of file storage.hpp.

    + +
    + + +

    ◆ cbegin()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    const_iterator entt::basic_storage< Entity, Type, Allocator, typename >::cbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the beginning.

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first instance of the internal array.
    + +

    Definition at line 450 of file storage.hpp.

    + +
    +
    + +

    ◆ cend()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + +
    + + + + + + + +
    const_iterator entt::basic_storage< Entity, Type, Allocator, typename >::cend () const
    +
    +inline
    @@ -353,23 +660,23 @@ template<typename Entity , typename Type , typename = void>

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the element following the last instance of the internal array.
    -

    Definition at line 271 of file storage.hpp.

    +

    Definition at line 476 of file storage.hpp.

    - -

    ◆ crbegin()

    + +

    ◆ crbegin()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inline
    - + @@ -377,32 +684,32 @@ template<typename Entity , typename Type , typename = void>
    const_reverse_iterator entt::basic_storage< Entity, Type, typename >::crbegin const_reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::crbegin ( ) const
    -inlinenoexcept

    Returns a reverse iterator to the beginning.

    -

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    Returns
    An iterator to the first instance of the reversed internal array.
    -

    Definition at line 294 of file storage.hpp.

    +

    Definition at line 499 of file storage.hpp.

    - -

    ◆ crend()

    + +

    ◆ crend()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inline
    - + @@ -410,7 +717,7 @@ template<typename Entity , typename Type , typename = void>
    const_reverse_iterator entt::basic_storage< Entity, Type, typename >::crend const_reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::crend ( ) const
    -inlinenoexcept
    @@ -419,17 +726,17 @@ template<typename Entity , typename Type , typename = void>

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the element following the last instance of the reversed internal array.
    -

    Definition at line 318 of file storage.hpp.

    +

    Definition at line 523 of file storage.hpp.

    - -

    ◆ emplace()

    + +

    ◆ emplace()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    template<typename... Args>
    @@ -437,9 +744,9 @@ template<typename... Args> +inline
    - + - + @@ -479,56 +786,23 @@ template<typename... Args>
    Returns
    A reference to the newly created object.
    -

    Definition at line 368 of file storage.hpp.

    +

    Definition at line 591 of file storage.hpp.

    - -

    ◆ end() [1/2]

    + +

    ◆ end() [1/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    value_type& entt::basic_storage< Entity, Type, typename >::emplace value_type& entt::basic_storage< Entity, Type, Allocator, typename >::emplace (const entity_type const entity_type  entt,
    - - -
    - - - - - -
    const_iterator entt::basic_storage< Entity, Type, typename >::end () const
    -
    -inlinenoexcept
    -
    - -

    Returns an iterator to the end.

    -

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    -
    Returns
    An iterator to the element following the last instance of the internal array.
    - -

    Definition at line 276 of file storage.hpp.

    - -
    - - -

    ◆ end() [2/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - +inline
    - - - + @@ -536,7 +810,7 @@ template<typename Entity , typename Type , typename = void>
    iterator entt::basic_storage< Entity, Type, typename >::end iterator entt::basic_storage< Entity, Type, Allocator, typename >::end ( )
    -inlinenoexcept
    @@ -545,25 +819,58 @@ template<typename Entity , typename Type , typename = void>

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the element following the last instance of the internal array.
    -

    Definition at line 281 of file storage.hpp.

    +

    Definition at line 486 of file storage.hpp.

    - -

    ◆ get() [1/2]

    + +

    ◆ end() [2/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + +
    - + - + + + +
    value_type& entt::basic_storage< Entity, Type, typename >::get const_iterator entt::basic_storage< Entity, Type, Allocator, typename >::end (const entity_type ) const
    +
    +inline
    +
    + +

    Returns an iterator to the end.

    +

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the internal array.
    + +

    Definition at line 481 of file storage.hpp.

    + +
    + + +

    ◆ get() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + +inline
    + + + + + @@ -585,25 +892,25 @@ template<typename Entity , typename Type , typename = void>
    Returns
    The object assigned to the entity.
    -

    Definition at line 347 of file storage.hpp.

    +

    Definition at line 553 of file storage.hpp.

    - -

    ◆ get() [2/2]

    + +

    ◆ get() [2/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    value_type& entt::basic_storage< Entity, Type, Allocator, typename >::get (const entity_type  entt)
    - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -138,9 +138,9 @@ Public Member Functions - - - + + + @@ -156,13 +156,13 @@ Public Member Functions - - - - - - - + + + + + + +
    - + - + @@ -625,25 +932,188 @@ template<typename Entity , typename Type , typename = void>
    Returns
    The object assigned to the entity.
    -

    Definition at line 342 of file storage.hpp.

    +

    Definition at line 547 of file storage.hpp.

    - -

    ◆ insert() [1/2]

    + +

    ◆ get_allocator()

    -template<typename Entity , typename Type , typename = void>
    -
    -template<typename EIt , typename CIt >
    +template<typename Entity , typename Type , typename Allocator , typename >
    const value_type& entt::basic_storage< Entity, Type, typename >::get const value_type& entt::basic_storage< Entity, Type, Allocator, typename >::get (const entity_type const entity_type  entt) const
    + + +
    - + + + + + +
    void entt::basic_storage< Entity, Type, typename >::insert constexpr allocator_type entt::basic_storage< Entity, Type, Allocator, typename >::get_allocator () const
    +
    +inlineconstexpr
    +
    + +

    Returns the associated allocator.

    +
    Returns
    The associated allocator.
    + +

    Definition at line 394 of file storage.hpp.

    + +
    + + +

    ◆ get_as_tuple() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + + +
    std::tuple<value_type &> entt::basic_storage< Entity, Type, Allocator, typename >::get_as_tuple (const entity_type entt)
    +
    +inline
    +
    + +

    Returns the object assigned to an entity as a tuple.

    +
    See also
    get
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The object assigned to the entity as a tuple.
    + +

    Definition at line 570 of file storage.hpp.

    + +
    +
    + +

    ◆ get_as_tuple() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + + +
    std::tuple<const value_type &> entt::basic_storage< Entity, Type, Allocator, typename >::get_as_tuple (const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the object assigned to an entity as a tuple.

    +
    See also
    get
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The object assigned to the entity as a tuple.
    + +

    Definition at line 565 of file storage.hpp.

    + +
    +
    + +

    ◆ in_place_pop()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, typename >::in_place_pop (const Entity entt,
    void * ud 
    )
    +
    +inlineoverrideprotectedvirtual
    +
    + +

    Attempts to erase an entity from the internal packed array.

    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 313 of file storage.hpp.

    + +
    +
    + +

    ◆ insert() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    +
    +template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, value_type>>>
    + + + @@ -30,10 +30,10 @@
    + + + @@ -658,13 +1128,7 @@ template<typename EIt , typename CIt > - - - - - - - + @@ -693,22 +1157,21 @@ template<typename EIt , typename CIt > -
    void entt::basic_storage< Entity, Type, Allocator, typename >::insert ( EIt  first, CIt from,
    CIt to from 
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    fromAn iterator to the first element of the range of objects.
    toAn iterator past the last element of the range of objects.
    -

    Definition at line 428 of file storage.hpp.

    +

    Definition at line 665 of file storage.hpp.

    - -

    ◆ insert() [2/2]

    + +

    ◆ insert() [2/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    template<typename It >
    @@ -716,7 +1179,7 @@ template<typename It > @@ -30,10 +30,10 @@
    - + @@ -730,7 +1193,7 @@ template<typename It > - + @@ -763,17 +1226,107 @@ template<typename It > -

    Definition at line 408 of file storage.hpp.

    +

    Definition at line 637 of file storage.hpp.

    - -

    ◆ patch()

    + +

    ◆ move_and_pop()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +
    void entt::basic_storage< Entity, Type, typename >::insert void entt::basic_storage< Entity, Type, Allocator, typename >::insert ( It  first,
    const value_typeconst value_type value = {} 
    + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, typename >::move_and_pop (const std::size_t from,
    const std::size_t to 
    )
    +
    +inlinefinalprotectedvirtual
    +
    + +

    Moves an entity in the internal packed array.

    +
    Parameters
    + + + +
    fromA valid position of an entity within storage.
    toA valid position of an entity within storage.
    +
    +
    + +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 285 of file storage.hpp.

    + +
    + + +

    ◆ operator=()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + + +
    basic_storage& entt::basic_storage< Entity, Type, Allocator, typename >::operator= (basic_storage< Entity, Type, Allocator, typename > && other)
    +
    +inline
    +
    + +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    +
    Returns
    This sparse set.
    + +

    Definition at line 379 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    template<typename... Func>
    @@ -781,10 +1334,10 @@ template<typename... Func> @@ -30,10 +30,10 @@
    - + - - + + @@ -814,233 +1367,32 @@ template<typename... Func>
    Parameters
    decltype(auto) entt::basic_storage< Entity, Type, typename >::patch value_type& entt::basic_storage< Entity, Type, Allocator, typename >::patch (const entity_type entity, const entity_type entt,
    - +
    entityA valid entity identifier.
    enttA valid entity identifier.
    funcValid function objects.
    Returns
    A reference to the updated instance.
    -

    Definition at line 388 of file storage.hpp.

    +

    Definition at line 616 of file storage.hpp.

    - -

    ◆ raw() [1/2]

    + +

    ◆ raw() [1/2]

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    - - -
    - + - - -
    const value_type* entt::basic_storage< Entity, Type, typename >::raw pointer entt::basic_storage< Entity, Type, Allocator, typename >::raw ( ) const
    -
    -inlinenoexcept
    -
    - -

    Direct access to the array of objects.

    -

    The returned pointer is such that range [raw(), raw() + size()) is always a valid range, even if the container is empty.

    -
    Note
    Objects are in the reverse order as returned by the begin/end iterators.
    -
    Returns
    A pointer to the array of objects.
    - -

    Definition at line 228 of file storage.hpp.

    - -
    - - -

    ◆ raw() [2/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - - - -
    - - - - - - - -
    value_type* entt::basic_storage< Entity, Type, typename >::raw ()
    -
    -inlinenoexcept
    -
    - -

    Direct access to the array of objects.

    -

    The returned pointer is such that range [raw(), raw() + size()) is always a valid range, even if the container is empty.

    -
    Note
    Objects are in the reverse order as returned by the begin/end iterators.
    -
    Returns
    A pointer to the array of objects.
    - -

    Definition at line 233 of file storage.hpp.

    - -
    -
    - -

    ◆ rbegin() [1/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - - - -
    - - - - - - - -
    const_reverse_iterator entt::basic_storage< Entity, Type, typename >::rbegin () const
    -
    -inlinenoexcept
    -
    - -

    Returns a reverse iterator to the beginning.

    -

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    -
    Returns
    An iterator to the first instance of the reversed internal array.
    - -

    Definition at line 299 of file storage.hpp.

    - -
    -
    - -

    ◆ rbegin() [2/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - - - -
    - - - - - - - -
    reverse_iterator entt::basic_storage< Entity, Type, typename >::rbegin ()
    -
    -inlinenoexcept
    -
    - -

    Returns a reverse iterator to the beginning.

    -

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    -
    Returns
    An iterator to the first instance of the reversed internal array.
    - -

    Definition at line 304 of file storage.hpp.

    - -
    -
    - -

    ◆ rend() [1/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - - - -
    - - - - - - - -
    const_reverse_iterator entt::basic_storage< Entity, Type, typename >::rend () const
    -
    -inlinenoexcept
    -
    - -

    Returns a reverse iterator to the end.

    -

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    -
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    - -

    Definition at line 323 of file storage.hpp.

    - -
    -
    - -

    ◆ rend() [2/2]

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - - - -
    - - - - - - - -
    reverse_iterator entt::basic_storage< Entity, Type, typename >::rend ()
    -
    -inlinenoexcept
    -
    - -

    Returns a reverse iterator to the end.

    -

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    -
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    - -

    Definition at line 328 of file storage.hpp.

    - -
    -
    - -

    ◆ reserve()

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - -
    - - - - - -
    void entt::basic_storage< Entity, Type, typename >::reserve (const size_type cap)
    @@ -1051,6 +1403,203 @@ template<typename Entity , typename Type , typename = void>
    +

    Direct access to the array of objects.

    +
    Returns
    A pointer to the array of objects.
    + +

    Definition at line 438 of file storage.hpp.

    + +
    +
    + +

    ◆ raw() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    const_pointer entt::basic_storage< Entity, Type, Allocator, typename >::raw () const
    +
    +inline
    +
    + +

    Direct access to the array of objects.

    +
    Returns
    A pointer to the array of objects.
    + +

    Definition at line 433 of file storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::rbegin ()
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first instance of the reversed internal array.
    + +

    Definition at line 509 of file storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::rbegin () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first instance of the reversed internal array.
    + +

    Definition at line 504 of file storage.hpp.

    + +
    +
    + +

    ◆ rend() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::rend ()
    +
    +inline
    +
    + +

    Returns a reverse iterator to the end.

    +

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    + +

    Definition at line 533 of file storage.hpp.

    + +
    +
    + +

    ◆ rend() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage< Entity, Type, Allocator, typename >::rend () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the end.

    +

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    + +

    Definition at line 528 of file storage.hpp.

    + +
    +
    + +

    ◆ reserve()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, typename >::reserve (const size_type cap)
    +
    +inlineoverridevirtual
    +
    +

    Increases the capacity of a storage.

    If the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.

    Parameters
    @@ -1060,183 +1609,34 @@ template<typename Entity , typename Type , typename = void>
    -

    Definition at line 205 of file storage.hpp.

    +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 406 of file storage.hpp.

    - -

    ◆ sort()

    + +

    ◆ swap_and_pop()

    -template<typename Entity , typename Type , typename = void>
    -
    -template<typename Compare , typename Sort = std_sort, typename... Args>
    +template<typename Entity , typename Type , typename Allocator , typename >
    - - -
    - + - - - - - - - - - - - - - - - - - - - - -
    void entt::basic_storage< Entity, Type, typename >::sort void entt::basic_storage< Entity, Type, Allocator, typename >::swap_and_pop (Compare compare,
    Sort algo = Sort{},
    Args &&... args 
    )
    -
    -inline
    -
    - -

    Sort all elements according to the given comparison function.

    -
    See also
    sort_n
    -
    Template Parameters
    - - - - -
    CompareType of comparison function object.
    SortType of sort function object.
    ArgsTypes of arguments to forward to the sort function object.
    -
    -
    -
    Parameters
    - - - - -
    compareA valid comparison function object.
    algoA valid sort function object.
    argsArguments to forward to the sort function object, if any.
    -
    -
    - -

    Definition at line 493 of file storage.hpp.

    - -
    - - -

    ◆ sort_n()

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    -
    -template<typename Compare , typename Sort = std_sort, typename... Args>
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    void entt::basic_storage< Entity, Type, typename >::sort_n (const size_type count,
    Compare compare,
    Sort algo = Sort{},
    Args &&... args 
    )
    -
    -inline
    -
    - -

    Sort elements according to the given comparison function.

    -

    The comparison function object must return true if the first element is less than the second one, false otherwise. The signature of the comparison function should be equivalent to one of the following:

    -
    bool(const Entity, const Entity);
    -
    bool(const Type &, const Type &);
    -

    Moreover, the comparison function object shall induce a strict weak ordering on the values.

    -

    The sort function oject must offer a member function template operator() that accepts three arguments:

    -
      -
    • An iterator to the first element of the range to sort.
    • -
    • An iterator past the last element of the range to sort.
    • -
    • A comparison function to use to compare the elements.
    • -
    -
    Warning
    Empty types are never instantiated. Therefore, only comparison function objects that require to return entities rather than components are accepted.
    -
    Template Parameters
    - - - - -
    CompareType of comparison function object.
    SortType of sort function object.
    ArgsTypes of arguments to forward to the sort function object.
    -
    -
    -
    Parameters
    - - - - - -
    countNumber of elements to sort.
    compareA valid comparison function object.
    algoA valid sort function object.
    argsArguments to forward to the sort function object, if any.
    -
    -
    - -

    Definition at line 470 of file storage.hpp.

    - -
    -
    - -

    ◆ swap_and_pop()

    - -
    -
    -
    -template<typename Entity , typename Type , typename = void>
    - - - +inlineoverrideprotectedvirtual
    - - - - - - + + - + @@ -1246,36 +1646,39 @@ template<typename Entity , typename Type , typename = void>
    void entt::basic_storage< Entity, Type, typename >::swap_and_pop (const std::size_t pos, const Entity entt,
    void *  ud 
    -inlineprotected
    -

    Attempts to remove an entity from the internal packed array.

    +

    Attempts to erase an entity from the internal packed array.

    Parameters
    - + +
    posA valid position of an entity within storage.
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    -

    Definition at line 175 of file storage.hpp.

    +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 295 of file storage.hpp.

    - -

    ◆ swap_at()

    + +

    ◆ swap_at()

    -template<typename Entity , typename Type , typename = void>
    +template<typename Entity , typename Type , typename Allocator , typename >
    +inlinefinalprotectedvirtual
    - + @@ -1294,7 +1697,7 @@ template<typename Entity , typename Type , typename = void>
    void entt::basic_storage< Entity, Type, typename >::swap_at void entt::basic_storage< Entity, Type, Allocator, typename >::swap_at ( const std::size_t  lhs,
    -inlineprotected
    @@ -1308,7 +1711,9 @@ template<typename Entity , typename Type , typename = void>
    -

    Definition at line 167 of file storage.hpp.

    +

    Reimplemented from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >.

    + +

    Definition at line 276 of file storage.hpp.

    @@ -1319,7 +1724,7 @@ template<typename Entity , typename Type , typename = void> diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co1b648c65222c62fcf6ec91bb91c92e61.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co1b648c65222c62fcf6ec91bb91c92e61.html new file mode 100644 index 000000000..a39ac79b2 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co1b648c65222c62fcf6ec91bb91c92e61.html @@ -0,0 +1,132 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    about_to_pop([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    allocator_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(deletion_policy pol, const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage(const allocator_type &alloc={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >inline
    in_place_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.map new file mode 100644 index 000000000..89cbf0752 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.md5 new file mode 100644 index 000000000..2d6702b39 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.md5 @@ -0,0 +1 @@ +3f901310d01b5e12ffe745708d24c043 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.png new file mode 100644 index 000000000..5fac031c8 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co5dc665e5aaa5efff8eb9eb2aae6c2fd2.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8161a1a5a79a62204fee84f31a8efe22.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8161a1a5a79a62204fee84f31a8efe22.html new file mode 100644 index 000000000..a50f771c9 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8161a1a5a79a62204fee84f31a8efe22.html @@ -0,0 +1,618 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = Allocator
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = std::allocator_traits< Allocator >::template rebind_alloc< Entity >
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage (const allocator_type &allocator={})
     Default constructor. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    basic_sparse_set ()
     Default constructor.
     
     basic_sparse_set (const allocator_type &allocator)
     Constructs an empty container with a given allocator. More...
     
     basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    virtual void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    virtual size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +virtual void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +virtual void swap_at (const std::size_t, const std::size_t)
     Swaps two entities in the internal packed array.
     
    +virtual void move_and_pop (const std::size_t, const std::size_t)
     Moves an entity in the internal packed array.
     
    virtual void swap_and_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 670 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::basic_storage (const allocator_typeallocator = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 691 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 728 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 712 of file storage.hpp.

    + +
    +
    + +

    ◆ get_allocator()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + +
    constexpr allocator_type entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::get_allocator () const
    +
    +inlineconstexpr
    +
    + +

    Returns the associated allocator.

    +
    Returns
    The associated allocator.
    + +

    Definition at line 699 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 757 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entt,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 740 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8fd78a0c73ac50bb2f7bc1d5a862a08b.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8fd78a0c73ac50bb2f7bc1d5a862a08b.html new file mode 100644 index 000000000..198854578 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co8fd78a0c73ac50bb2f7bc1d5a862a08b.html @@ -0,0 +1,136 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage(const allocator_type &allocator={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    get_allocator() constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    in_place_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entt, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.map new file mode 100644 index 000000000..eafae924e --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.md5 new file mode 100644 index 000000000..d5686d995 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.md5 @@ -0,0 +1 @@ +ab9836132fe51af8a5506f1917af2bb9 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.png new file mode 100644 index 000000000..3eb04a772 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01co94e015a5e1c7656942b5ca0ffc90a08b.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coaf1cc4d4f4587b53797d9d80fdb6cac3.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coaf1cc4d4f4587b53797d9d80fdb6cac3.html new file mode 100644 index 000000000..c5ee6d515 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coaf1cc4d4f4587b53797d9d80fdb6cac3.html @@ -0,0 +1,568 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage (const allocator_type &alloc={})
     Default constructor. More...
     
    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (deletion_policy pol, const allocator_type &alloc={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (const allocator_type &alloc={})
     Constructs an empty container with the given allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void move_and_pop ([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)
     Attempts to move an entity in the internal packed array. More...
     
    virtual void swap_and_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void about_to_pop ([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)
     Last chance to use an entity that is about to be erased. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 693 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >::basic_storage (const allocator_typealloc = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 714 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 743 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 727 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 772 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< typename component_traits< Type >::value_type > > >::patch ([[maybe_unused] ] const entity_type entity,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    entityA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 755 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.map new file mode 100644 index 000000000..89cbf0752 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.md5 new file mode 100644 index 000000000..2d6702b39 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.md5 @@ -0,0 +1 @@ +3f901310d01b5e12ffe745708d24c043 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.png new file mode 100644 index 000000000..5fac031c8 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01cob4961ae50c16f51a257d1ab1935acdad.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.map new file mode 100644 index 000000000..eafae924e --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.md5 new file mode 100644 index 000000000..d5686d995 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.md5 @@ -0,0 +1 @@ +ab9836132fe51af8a5506f1917af2bb9 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.png new file mode 100644 index 000000000..3eb04a772 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01coec9914b1e8295090097f73d387091e96.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig0a319e97c3d07bbe76fa50a9fcf5021b.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig0a319e97c3d07bbe76fa50a9fcf5021b.html new file mode 100644 index 000000000..5b404e6a4 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig0a319e97c3d07bbe76fa50a9fcf5021b.html @@ -0,0 +1,618 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = Allocator
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = std::allocator_traits< Allocator >::template rebind_alloc< Entity >
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage (const allocator_type &allocator={})
     Default constructor. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    basic_sparse_set ()
     Default constructor.
     
     basic_sparse_set (const allocator_type &allocator)
     Constructs an empty container with a given allocator. More...
     
     basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    virtual void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    virtual size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +virtual void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +virtual void swap_at (const std::size_t, const std::size_t)
     Swaps two entities in the internal packed array.
     
    +virtual void move_and_pop (const std::size_t, const std::size_t)
     Moves an entity in the internal packed array.
     
    virtual void swap_and_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 670 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::basic_storage (const allocator_typeallocator = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 691 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 728 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 712 of file storage.hpp.

    + +
    +
    + +

    ◆ get_allocator()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + +
    constexpr allocator_type entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::get_allocator () const
    +
    +inlineconstexpr
    +
    + +

    Returns the associated allocator.

    +
    Returns
    The associated allocator.
    + +

    Definition at line 699 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 757 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entt,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 740 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig248352d8a2c34e244810b391e7c6c4f9.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig248352d8a2c34e244810b391e7c6c4f9.html new file mode 100644 index 000000000..cc020c8d0 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig248352d8a2c34e244810b391e7c6c4f9.html @@ -0,0 +1,136 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage(const allocator_type &allocator={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inline
    get_allocator() constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inline
    in_place_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entt, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_if_empty_v< Type > &&std::is_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.map new file mode 100644 index 000000000..031f2f9f5 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.md5 new file mode 100644 index 000000000..bbbb507d5 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.md5 @@ -0,0 +1 @@ +6b4d639a60e68b4fa061f06901914cb1 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.png new file mode 100644 index 000000000..2311f02f1 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig590bcb928f788173ae7b7e22172f5ea6.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.map new file mode 100644 index 000000000..031f2f9f5 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.md5 new file mode 100644 index 000000000..bbbb507d5 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.md5 @@ -0,0 +1 @@ +6b4d639a60e68b4fa061f06901914cb1 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.png new file mode 100644 index 000000000..2311f02f1 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ig83374cffbb80bec644b9bc36f27258fd.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igb49d3f82639348392c5a5f0f427d22ad.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igb49d3f82639348392c5a5f0f427d22ad.html new file mode 100644 index 000000000..feaca135f --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igb49d3f82639348392c5a5f0f427d22ad.html @@ -0,0 +1,623 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using base_type = basic_sparse_set< Entity, typename allocator_traits::template rebind_alloc< Entity > >
     Base type.
     
    +using allocator_type = Allocator
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = std::allocator_traits< Allocator >::template rebind_alloc< Entity >
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage (const allocator_type &allocator={})
     Default constructor. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    std::tuple get_as_tuple ([[maybe_unused]] const entity_type entt) const
     Returns an empty tuple. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    basic_sparse_set ()
     Default constructor.
     
     basic_sparse_set (const allocator_type &allocator)
     Constructs an empty container with a given allocator. More...
     
     basic_sparse_set (deletion_policy pol, const allocator_type &allocator={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    constexpr allocator_type get_allocator () const
     Returns the associated allocator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    virtual void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    virtual size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +virtual void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +virtual void swap_at (const std::size_t, const std::size_t)
     Swaps two entities in the internal packed array.
     
    +virtual void move_and_pop (const std::size_t, const std::size_t)
     Moves an entity in the internal packed array.
     
    virtual void swap_and_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt, void *)
     Attempts to erase an entity from the internal packed array. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 688 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::basic_storage (const allocator_typeallocator = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocatorAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 710 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 749 of file storage.hpp.

    + +
    +
    + +

    ◆ get_allocator()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + +
    constexpr allocator_type entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::get_allocator () const
    +
    +inlineconstexpr
    +
    + +

    Returns the associated allocator.

    +
    Returns
    The associated allocator.
    + +

    Definition at line 718 of file storage.hpp.

    + +
    +
    + +

    ◆ get_as_tuple()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    std::tuple entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::get_as_tuple ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Returns an empty tuple.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    Returns an empty tuple.
    + +

    Definition at line 732 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 778 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entt,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 761 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.map new file mode 100644 index 000000000..afdb6837a --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.md5 new file mode 100644 index 000000000..929414b35 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.md5 @@ -0,0 +1 @@ +d7274da840bfc16bcb263cf75ce9fa5c \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.png new file mode 100644 index 000000000..670669466 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igbcd281b5bb096203256d024b396ffc11.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.map new file mode 100644 index 000000000..afdb6837a --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.md5 new file mode 100644 index 000000000..929414b35 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.md5 @@ -0,0 +1 @@ +d7274da840bfc16bcb263cf75ce9fa5c \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.png new file mode 100644 index 000000000..670669466 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ige5ebeb189788e5b1cfa466e917ef125a.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igf1e7d03b873359848c7e7d1b4d57edeb.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igf1e7d03b873359848c7e7d1b4d57edeb.html new file mode 100644 index 000000000..a7eecf072 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01igf1e7d03b873359848c7e7d1b4d57edeb.html @@ -0,0 +1,137 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    base_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >
    basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &allocator)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(deletion_policy pol, const allocator_type &allocator={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage(const allocator_type &allocator={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get_allocator() constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inline
    get_as_tuple([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inline
    in_place_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entt, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt, void *)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< ignore_as_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.map new file mode 100644 index 000000000..a3e6774cd --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.md5 new file mode 100644 index 000000000..149a521ad --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.md5 @@ -0,0 +1 @@ +74a30a84cbad30cecff9958914e6c941 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.png new file mode 100644 index 000000000..137cc2833 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is0bebc486e5feac32da5d58ca22e83262.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is477cf2f45b4319fdef3d3fef74eacbb7.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is477cf2f45b4319fdef3d3fef74eacbb7.html new file mode 100644 index 000000000..039658deb --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is477cf2f45b4319fdef3d3fef74eacbb7.html @@ -0,0 +1,509 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = pointer
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (const allocator_type &alloc={})
     Default constructor. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases multiple entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes multiple entities from a sparse set if they exist. More...
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void swap_and_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void about_to_erase ([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)
     Last chance to use an entity that is about to be erased. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 701 of file storage.hpp.

    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 737 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 721 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 766 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entity,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    entityA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 749 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.map new file mode 100644 index 000000000..a3e6774cd --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.md5 new file mode 100644 index 000000000..149a521ad --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.md5 @@ -0,0 +1 @@ +74a30a84cbad30cecff9958914e6c941 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.png new file mode 100644 index 000000000..137cc2833 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01is8a22f52c118458311b98ed3b056744be.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01isb7490cf930fd87c14ff49fc102ea5dc6.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01isb7490cf930fd87c14ff49fc102ea5dc6.html new file mode 100644 index 000000000..217c0b8f6 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01isb7490cf930fd87c14ff49fc102ea5dc6.html @@ -0,0 +1,127 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    about_to_erase([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    allocator_type typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< is_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st0c9fc5b553929b38b320d100b9b44a45.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st0c9fc5b553929b38b320d100b9b44a45.html new file mode 100644 index 000000000..4b939c6c7 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st0c9fc5b553929b38b320d100b9b44a45.html @@ -0,0 +1,509 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = pointer
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (const allocator_type &alloc={})
     Default constructor. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases multiple entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes multiple entities from a sparse set if they exist. More...
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void swap_and_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void about_to_erase ([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)
     Last chance to use an entity that is about to be erased. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 701 of file storage.hpp.

    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 737 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 721 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 766 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >::patch ([[maybe_unused] ] const entity_type entity,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    entityA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 749 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.map new file mode 100644 index 000000000..2c85bfce1 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.md5 new file mode 100644 index 000000000..53dd63537 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.md5 @@ -0,0 +1 @@ +06d3739748bc6346873dbcbc3f55f24e \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.png new file mode 100644 index 000000000..dc2400fef Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st837c479306bc5a5c06f9efbe7e343075.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st9473f3d132e22d57fa7b5569a19f4564.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st9473f3d132e22d57fa7b5569a19f4564.html new file mode 100644 index 000000000..8b44d9666 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01st9473f3d132e22d57fa7b5569a19f4564.html @@ -0,0 +1,127 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    about_to_erase([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    allocator_type typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >inline
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Allocator, std::enable_if_t< std::conjunction_v< std::true_type, std::is_empty< Type > > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.map new file mode 100644 index 000000000..2c85bfce1 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.md5 new file mode 100644 index 000000000..53dd63537 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.md5 @@ -0,0 +1 @@ +06d3739748bc6346873dbcbc3f55f24e \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.png new file mode 100644 index 000000000..dc2400fef Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_3_01ste882bef041995c916f8d778cc4520c3f.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__3dc391213f64e3d4fbde4383460792c9.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__3dc391213f64e3d4fbde4383460792c9.html new file mode 100644 index 000000000..64ac38989 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__3dc391213f64e3d4fbde4383460792c9.html @@ -0,0 +1,572 @@ + + + + + + + +EnTT: entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using storage_policy = Policy
     Storage policy.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage (const allocator_type &alloc={})
     Default constructor. More...
     
    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (Policy, const allocator_type &alloc={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (const allocator_type &alloc={})
     Constructs an empty container with the given allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void move_and_pop ([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)
     Attempts to move an entity in the internal packed array. More...
     
    virtual void swap_and_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop ([[maybe_unused]] const std::size_t pos)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void about_to_pop ([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)
     Last chance to use an entity that is about to be erased. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Policy, typename Allocator>
    +class entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 694 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Policy , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >::basic_storage (const allocator_typealloc = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 714 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Policy , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 743 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Policy , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 727 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Policy , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 772 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Policy , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entity,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    entityA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 755 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__4fdc04be3efb0802fc1948d1901e10fa.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__4fdc04be3efb0802fc1948d1901e10fa.html new file mode 100644 index 000000000..3f85e5f9e --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__4fdc04be3efb0802fc1948d1901e10fa.html @@ -0,0 +1,133 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    about_to_pop([[maybe_unused]] const Entity entity,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    allocator_type typedefentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(Policy, const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage(const allocator_type &alloc={})entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    in_place_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    storage_policy typedefentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop([[maybe_unused]] const std::size_t pos)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, Policy, Allocator, std::enable_if_t< is_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.map new file mode 100644 index 000000000..5d0df9b19 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.md5 new file mode 100644 index 000000000..8fa594c06 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.md5 @@ -0,0 +1 @@ +a90fbed50ccf29e32445d4e2d2f0c687 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.png new file mode 100644 index 000000000..655f38857 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__5325c5e664de74f53b49e7c072aa481b.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.map new file mode 100644 index 000000000..5d0df9b19 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.md5 new file mode 100644 index 000000000..8fa594c06 --- /dev/null +++ b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.md5 @@ -0,0 +1 @@ +a90fbed50ccf29e32445d4e2d2f0c687 \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.png new file mode 100644 index 000000000..655f38857 Binary files /dev/null and b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01Policy_00_01Allocator_00_01std_1_1enable__d62946c352cef86c13a907fbb738bd00.png differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.map deleted file mode 100644 index 86e653a8b..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.md5 deleted file mode 100644 index ae192cd9d..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.md5 +++ /dev/null @@ -1 +0,0 @@ -b67778f396d954eb246b2c9a278d924a \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.png deleted file mode 100644 index e452de0b0..000000000 Binary files a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_010277fbc190173a2c5ead5ca25e1b65ed.png and /dev/null differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.map b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.map deleted file mode 100644 index 86e653a8b..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.md5 b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.md5 deleted file mode 100644 index ae192cd9d..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.md5 +++ /dev/null @@ -1 +0,0 @@ -b67778f396d954eb246b2c9a278d924a \ No newline at end of file diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.png b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.png deleted file mode 100644 index e452de0b0..000000000 Binary files a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_016669ad83cbd2b452869e05410d99a48b.png and /dev/null differ diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4-members.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4-members.html deleted file mode 100644 index 71a31561c..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - -EnTT: Member List - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT -  3.7.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > > Member List
    -
    -
    - -

    This is the complete list of members for entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    at(const size_type pos) constentt::basic_sparse_set< Entity >inline
    basic_sparse_set()=defaultentt::basic_sparse_set< Entity >
    basic_sparse_set(basic_sparse_set &&)=defaultentt::basic_sparse_set< Entity >
    begin() const noexceptentt::basic_sparse_set< Entity >inline
    capacity() const noexceptentt::basic_sparse_set< Entity >inline
    clear(void *ud=nullptr) noexceptentt::basic_sparse_set< Entity >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    data() const noexceptentt::basic_sparse_set< Entity >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >inline
    entt::basic_sparse_set::emplace(const entity_type entt)entt::basic_sparse_set< Entity >inline
    empty() const noexceptentt::basic_sparse_set< Entity >inline
    end() const noexceptentt::basic_sparse_set< Entity >inline
    entity_type typedefentt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >
    extent() const noexceptentt::basic_sparse_set< Entity >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >inline
    index(const entity_type entt) constentt::basic_sparse_set< Entity >inline
    insert(It first, It last, const value_type &={})entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >inline
    entt::basic_sparse_set::insert(It first, It last)entt::basic_sparse_set< Entity >inline
    iterator typedefentt::basic_sparse_set< Entity >
    operator=(basic_sparse_set &&)=defaultentt::basic_sparse_set< Entity >
    operator[](const size_type pos) constentt::basic_sparse_set< Entity >inline
    patch([[maybe_unused]] const entity_type entity, Func &&... func)entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >inline
    rbegin() const noexceptentt::basic_sparse_set< Entity >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity >inline
    rend() const noexceptentt::basic_sparse_set< Entity >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity >
    shrink_to_fit()entt::basic_sparse_set< Entity >inline
    size() const noexceptentt::basic_sparse_set< Entity >inline
    size_type typedefentt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity >inline
    sort_n(const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity >inline
    swap_and_pop(const std::size_t, void *)entt::basic_sparse_set< Entity >inlineprotectedvirtual
    swap_at(const std::size_t, const std::size_t)entt::basic_sparse_set< Entity >inlineprotectedvirtual
    value_type typedefentt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >
    ~basic_sparse_set()=defaultentt::basic_sparse_set< Entity >virtual
    - - - - diff --git a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4.html b/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4.html deleted file mode 100644 index a48a43a36..000000000 --- a/classentt_1_1basic__storage_3_01Entity_00_01Type_00_01std_1_1enable__if__t_3_01is__empty__v_3_01Type_01_4_01_4_01_4.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - - - -EnTT: entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > > Class Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT -  3.7.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > > Class Template Reference
    -
    -
    - -

    Basic storage implementation. - More...

    - -

    #include <storage.hpp>

    -
    -Inheritance diagram for entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >:
    -
    -
    Inheritance graph
    - - - - -
    [legend]
    -
    -Collaboration diagram for entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Types

    -using value_type = Type
     Type of the objects assigned to entities.
     
    -using entity_type = Entity
     Underlying entity identifier.
     
    -using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity >
    -using entity_type = Entity
     Underlying entity identifier.
     
    -using size_type = std::size_t
     Unsigned integer type.
     
    -using iterator = sparse_set_iterator
     Random access iterator type.
     
    -using reverse_iterator = const entity_type *
     Reverse iterator type.
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entity, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity >
    basic_sparse_set ()=default
     Default constructor.
     
    basic_sparse_set (basic_sparse_set &&)=default
     Default move constructor.
     
    -virtual ~basic_sparse_set ()=default
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&)=default
     Default move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const noexcept
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    -void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const noexcept
     Returns the extent of a sparse set. More...
     
    size_type size () const noexcept
     Returns the number of elements in a sparse set. More...
     
    bool empty () const noexcept
     Checks whether a sparse set is empty. More...
     
    const entity_typedata () const noexcept
     Direct access to the internal packed array. More...
     
    iterator begin () const noexcept
     Returns an iterator to the beginning. More...
     
    iterator end () const noexcept
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const noexcept
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const noexcept
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    void emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    template<typename It >
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set. More...
     
    template<typename It >
    void remove (It first, It last, void *ud=nullptr)
     Removes multiple entities from a pool. More...
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort_n (const size_type count, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr) noexcept
     Clears a sparse set. More...
     
    - - - - - - - - -

    -Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity >
    -virtual void swap_at (const std::size_t, const std::size_t)
     Swaps two entities in the internal packed array.
     
    -virtual void swap_and_pop (const std::size_t, void *)
     Attempts to remove an entity from the internal packed array.
     
    -

    Detailed Description

    -

    template<typename Entity, typename Type>
    -class entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >

    - -

    Basic storage implementation.

    -

    This class is a refinement of a sparse set that associates an object to an entity. The main purpose of this class is to extend sparse sets to store components in a registry. It guarantees fast access both to the elements and to the entities.

    -
    Note
    Entities and objects have the same order. It's guaranteed both in case of raw access (either to entities or objects) and when using random or input access iterators.
    -
    -Internal data structures arrange elements to maximize performance. There are no guarantees that objects are returned in the insertion order when iterate a storage. Do not make assumption on the order in any case.
    -
    Warning
    Empty types aren't explicitly instantiated. Therefore, many of the functions normally available for non-empty types will not be available for empty ones.
    -
    See also
    sparse_set<Entity>
    -
    Template Parameters
    - - - -
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects assigned to the entities.
    -
    -
    - -

    Definition at line 504 of file storage.hpp.

    -

    Member Function Documentation

    - -

    ◆ emplace()

    - -
    -
    -
    -template<typename Entity , typename Type >
    -
    -template<typename... Args>
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    -
    -inline
    -
    - -

    Assigns an entity to a storage and constructs its object.

    -
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    -
    Template Parameters
    - - -
    ArgsTypes of arguments to use to construct the object.
    -
    -
    -
    Parameters
    - - - -
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    -
    -
    - -

    Definition at line 540 of file storage.hpp.

    - -
    -
    - -

    ◆ get()

    - -
    -
    -
    -template<typename Entity , typename Type >
    - - - - - -
    - - - - - - - - -
    void entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    -
    -inline
    -
    - -

    Fake get function.

    -
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    -
    Parameters
    - - -
    enttA valid entity identifier.
    -
    -
    - -

    Definition at line 524 of file storage.hpp.

    - -
    -
    - -

    ◆ insert()

    - -
    -
    -
    -template<typename Entity , typename Type >
    -
    -template<typename It >
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    void entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    -
    -inline
    -
    - -

    Assigns one or more entities to a storage.

    -
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    -
    Template Parameters
    - - -
    ItType of input iterator.
    -
    -
    -
    Parameters
    - - - -
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    -
    -
    - -

    Definition at line 569 of file storage.hpp.

    - -
    -
    - -

    ◆ patch()

    - -
    -
    -
    -template<typename Entity , typename Type >
    -
    -template<typename... Func>
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entity,
    Func &&... func 
    )
    -
    -inline
    -
    - -

    Updates the instance assigned to a given entity in-place.

    -
    Template Parameters
    - - -
    FuncTypes of the function objects to invoke.
    -
    -
    -
    Parameters
    - - - -
    entityA valid entity identifier.
    funcValid function objects.
    -
    -
    - -

    Definition at line 552 of file storage.hpp.

    - -
    -
    -
    The documentation for this class was generated from the following file: -
    - - - - diff --git a/classentt_1_1basic__storage__coll__graph.map b/classentt_1_1basic__storage__coll__graph.map new file mode 100644 index 000000000..8fafde58b --- /dev/null +++ b/classentt_1_1basic__storage__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage__coll__graph.md5 b/classentt_1_1basic__storage__coll__graph.md5 new file mode 100644 index 000000000..ff6e44b39 --- /dev/null +++ b/classentt_1_1basic__storage__coll__graph.md5 @@ -0,0 +1 @@ +3dc7fa38862b44423758e9aed408d40f \ No newline at end of file diff --git a/classentt_1_1basic__storage__coll__graph.png b/classentt_1_1basic__storage__coll__graph.png new file mode 100644 index 000000000..fe9c939b7 Binary files /dev/null and b/classentt_1_1basic__storage__coll__graph.png differ diff --git a/classentt_1_1basic__storage__impl-members.html b/classentt_1_1basic__storage__impl-members.html new file mode 100644 index 000000000..88c2980f2 --- /dev/null +++ b/classentt_1_1basic__storage__impl-members.html @@ -0,0 +1,156 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage_impl< Entity, Type, Allocator, typename > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage_impl< Entity, Type, Allocator, typename >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(deletion_policy pol, const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage_impl(const allocator_type &alloc={})entt::basic_storage_impl< Entity, Type, Allocator, typename >inlineexplicit
    basic_storage_impl(basic_storage_impl &&other)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    begin() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    begin()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    capacity() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    cbegin() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    cend() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    const_iterator typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    const_pointer typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    const_reverse_iterator typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    crbegin() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    crend() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    end()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    entity_type typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get(const entity_type entt) constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    get(const entity_type entt)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    in_place_pop(const Entity entt, void *ud) overrideentt::basic_storage_impl< Entity, Type, Allocator, typename >inlineprotected
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::in_place_pop(const Entity entt,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &value={})entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    insert(EIt first, EIt last, CIt from)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    move_and_pop(const std::size_t from, const std::size_t to) finalentt::basic_storage_impl< Entity, Type, Allocator, typename >inlineprotected
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::move_and_pop([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_storage_impl &&other)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch(const entity_type entt, Func &&... func)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    pointer typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    raw() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    raw()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    rbegin() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    rbegin()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    rend()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    reserve(const size_type cap)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    shrink_to_fit()entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt, void *ud) overrideentt::basic_storage_impl< Entity, Type, Allocator, typename >inlineprotected
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap_and_pop(const Entity entt,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at(const std::size_t lhs, const std::size_t rhs) finalentt::basic_storage_impl< Entity, Type, Allocator, typename >inlineprotected
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage_impl< Entity, Type, Allocator, typename >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    ~basic_storage_impl() overrideentt::basic_storage_impl< Entity, Type, Allocator, typename >inline
    + + + + diff --git a/classentt_1_1basic__storage__impl.html b/classentt_1_1basic__storage__impl.html new file mode 100644 index 000000000..04f207d74 --- /dev/null +++ b/classentt_1_1basic__storage__impl.html @@ -0,0 +1,1765 @@ + + + + + + + +EnTT: entt::basic_storage_impl< Entity, Type, Allocator, typename > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage_impl< Entity, Type, Allocator, typename > Class Template Reference
    +
    +
    + +

    Basic storage implementation. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage_impl< Entity, Type, Allocator, typename >:
    +
    +
    Inheritance graph
    + + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage_impl< Entity, Type, Allocator, typename >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = bucket_alloc_pointer
     Pointer type to contained elements.
     
    +using const_pointer = bucket_alloc_const_pointer
     Constant pointer type to contained elements.
     
    +using iterator = storage_iterator< value_type >
     Random access iterator type.
     
    +using const_iterator = storage_iterator< const value_type >
     Constant random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    +using const_reverse_iterator = std::reverse_iterator< const_iterator >
     Constant reverse iterator type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage_impl (const allocator_type &alloc={})
     Default constructor. More...
     
     basic_storage_impl (basic_storage_impl &&other)
     Move constructor. More...
     
    ~basic_storage_impl () override
     Default destructor.
     
    basic_storage_imploperator= (basic_storage_impl &&other)
     Move assignment operator. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a storage. More...
     
    size_type capacity () const
     Returns the number of elements that a storage has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    const_pointer raw () const
     Direct access to the array of objects. More...
     
    pointer raw ()
     Direct access to the array of objects. More...
     
    const_iterator cbegin () const
     Returns an iterator to the beginning. More...
     
    const_iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator begin ()
     Returns an iterator to the beginning. More...
     
    const_iterator cend () const
     Returns an iterator to the end. More...
     
    const_iterator end () const
     Returns an iterator to the end. More...
     
    iterator end ()
     Returns an iterator to the end. More...
     
    const_reverse_iterator crbegin () const
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rbegin ()
     Returns a reverse iterator to the beginning. More...
     
    const_reverse_iterator crend () const
     Returns a reverse iterator to the end. More...
     
    const_reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    reverse_iterator rend ()
     Returns a reverse iterator to the end. More...
     
    const value_typeget (const entity_type entt) const
     Returns the object assigned to an entity. More...
     
    value_typeget (const entity_type entt)
     Returns the object assigned to an entity. More...
     
    template<typename... Args>
    value_typeemplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    decltype(auto) patch (const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &value={})
     Assigns one or more entities to a storage and constructs their objects from a given instance. More...
     
    template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, value_type>>>
    void insert (EIt first, EIt last, CIt from)
     Assigns one or more entities to a storage and constructs their objects from a given range. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort elements according to the given comparison function. More...
     
    template<typename Compare , typename Sort = std_sort, typename... Args>
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (deletion_policy pol, const allocator_type &alloc={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (const allocator_type &alloc={})
     Constructs an empty container with the given allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    void swap_at (const std::size_t lhs, const std::size_t rhs) final
     Swaps two entities in the internal packed array. More...
     
    void move_and_pop (const std::size_t from, const std::size_t to) final
     Moves an entity in the internal packed array. More...
     
    void swap_and_pop (const Entity entt, void *ud) override
     Attempts to erase an entity from the internal packed array. More...
     
    void in_place_pop (const Entity entt, void *ud) override
     Attempts to erase an entity from the internal packed array. More...
     
    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void move_and_pop ([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)
     Moves an entity in the internal packed array. More...
     
    virtual void swap_and_pop (const Entity entt,[[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt,[[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator, typename = void>
    +class entt::basic_storage_impl< Entity, Type, Allocator, typename >

    + +

    Basic storage implementation.

    +

    This class is a refinement of a sparse set that associates an object to an entity. The main purpose of this class is to extend sparse sets to store components in a registry. It guarantees fast access both to the elements and to the entities.

    +
    Note
    Entities and objects have the same order.
    +
    +Internal data structures arrange elements to maximize performance. There are no guarantees that objects are returned in the insertion order when iterate a storage. Do not make assumption on the order in any case.
    +
    Warning
    Empty types aren't explicitly instantiated. Therefore, many of the functions normally available for non-empty types will not be available for empty ones.
    +
    See also
    sparse_set<Entity>
    +
    Template Parameters
    + + + + +
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects assigned to the entities.
    AllocatorType of allocator used to manage memory and elements.
    +
    +
    + +

    Definition at line 52 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage_impl() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    entt::basic_storage_impl< Entity, Type, Allocator, typename >::basic_storage_impl (const allocator_typealloc = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 318 of file storage.hpp.

    + +
    +
    + +

    ◆ basic_storage_impl() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    entt::basic_storage_impl< Entity, Type, Allocator, typename >::basic_storage_impl (basic_storage_impl< Entity, Type, Allocator, typename > && other)
    +
    +inline
    +
    + +

    Move constructor.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    + +

    Definition at line 330 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ begin() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::begin ()
    +
    +inline
    +
    + +

    Returns an iterator to the beginning.

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first instance of the internal array.
    + +

    Definition at line 424 of file storage.hpp.

    + +
    +
    + +

    ◆ begin() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the beginning.

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first instance of the internal array.
    + +

    Definition at line 419 of file storage.hpp.

    + +
    +
    + +

    ◆ capacity()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    size_type entt::basic_storage_impl< Entity, Type, Allocator, typename >::capacity () const
    +
    +inline
    +
    + +

    Returns the number of elements that a storage has currently allocated space for.

    +
    Returns
    Capacity of the storage.
    + +

    Definition at line 382 of file storage.hpp.

    + +
    +
    + +

    ◆ cbegin()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::cbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the beginning.

    +

    The returned iterator points to the first instance of the internal array. If the storage is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first instance of the internal array.
    + +

    Definition at line 413 of file storage.hpp.

    + +
    +
    + +

    ◆ cend()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::cend () const
    +
    +inline
    +
    + +

    Returns an iterator to the end.

    +

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the internal array.
    + +

    Definition at line 439 of file storage.hpp.

    + +
    +
    + +

    ◆ crbegin()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::crbegin () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first instance of the reversed internal array.
    + +

    Definition at line 462 of file storage.hpp.

    + +
    +
    + +

    ◆ crend()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::crend () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the end.

    +

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    + +

    Definition at line 486 of file storage.hpp.

    + +
    +
    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    value_type& entt::basic_storage_impl< Entity, Type, Allocator, typename >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +

    This version accept both types that can be constructed in place directly and types like aggregates that do not work well with a placement new as performed usually under the hood during an emplace back.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    +
    Returns
    A reference to the newly created object.
    + +

    Definition at line 537 of file storage.hpp.

    + +
    +
    + +

    ◆ end() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::end ()
    +
    +inline
    +
    + +

    Returns an iterator to the end.

    +

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the internal array.
    + +

    Definition at line 449 of file storage.hpp.

    + +
    +
    + +

    ◆ end() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::end () const
    +
    +inline
    +
    + +

    Returns an iterator to the end.

    +

    The returned iterator points to the element following the last instance of the internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the internal array.
    + +

    Definition at line 444 of file storage.hpp.

    + +
    +
    + +

    ◆ get() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    value_type& entt::basic_storage_impl< Entity, Type, Allocator, typename >::get (const entity_type entt)
    +
    +inline
    +
    + +

    Returns the object assigned to an entity.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The object assigned to the entity.
    + +

    Definition at line 516 of file storage.hpp.

    + +
    +
    + +

    ◆ get() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    const value_type& entt::basic_storage_impl< Entity, Type, Allocator, typename >::get (const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the object assigned to an entity.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The object assigned to the entity.
    + +

    Definition at line 510 of file storage.hpp.

    + +
    +
    + +

    ◆ in_place_pop()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::in_place_pop (const Entity entt,
    void * ud 
    )
    +
    +inlineoverrideprotected
    +
    + +

    Attempts to erase an entity from the internal packed array.

    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 285 of file storage.hpp.

    + +
    +
    + +

    ◆ insert() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename EIt , typename CIt , typename = std::enable_if_t<std::is_same_v<std::decay_t<typename std::iterator_traits<CIt>::value_type>, value_type>>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::insert (EIt first,
    EIt last,
    CIt from 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage and constructs their objects from a given range.

    +
    See also
    construct
    +
    Template Parameters
    + + + +
    EItType of input iterator.
    CItType of input iterator.
    +
    +
    +
    Parameters
    + + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    fromAn iterator to the first element of the range of objects.
    +
    +
    + +

    Definition at line 613 of file storage.hpp.

    + +
    +
    + +

    ◆ insert() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::insert (It first,
    It last,
    const value_typevalue = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage and constructs their objects from a given instance.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    valueAn instance of the object to construct.
    +
    +
    + +

    Definition at line 583 of file storage.hpp.

    + +
    +
    + +

    ◆ move_and_pop()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::move_and_pop (const std::size_t from,
    const std::size_t to 
    )
    +
    +inlinefinalprotected
    +
    + +

    Moves an entity in the internal packed array.

    +
    Parameters
    + + + +
    fromA valid position of an entity within storage.
    toA valid position of an entity within storage.
    +
    +
    + +

    Definition at line 265 of file storage.hpp.

    + +
    +
    + +

    ◆ operator=()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    basic_storage_impl& entt::basic_storage_impl< Entity, Type, Allocator, typename >::operator= (basic_storage_impl< Entity, Type, Allocator, typename > && other)
    +
    +inline
    +
    + +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    +
    Returns
    This sparse set.
    + +

    Definition at line 348 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    decltype(auto) entt::basic_storage_impl< Entity, Type, Allocator, typename >::patch (const entity_type entt,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    funcValid function objects.
    +
    +
    +
    Returns
    A reference to the updated instance.
    + +

    Definition at line 562 of file storage.hpp.

    + +
    +
    + +

    ◆ raw() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    pointer entt::basic_storage_impl< Entity, Type, Allocator, typename >::raw ()
    +
    +inline
    +
    + +

    Direct access to the array of objects.

    +
    Returns
    A pointer to the array of objects.
    + +

    Definition at line 401 of file storage.hpp.

    + +
    +
    + +

    ◆ raw() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_pointer entt::basic_storage_impl< Entity, Type, Allocator, typename >::raw () const
    +
    +inline
    +
    + +

    Direct access to the array of objects.

    +
    Returns
    A pointer to the array of objects.
    + +

    Definition at line 396 of file storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::rbegin ()
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first instance of the reversed internal array.
    + +

    Definition at line 472 of file storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::rbegin () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the beginning.

    +

    The returned iterator points to the first instance of the reversed internal array. If the storage is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first instance of the reversed internal array.
    + +

    Definition at line 467 of file storage.hpp.

    + +
    +
    + +

    ◆ rend() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::rend ()
    +
    +inline
    +
    + +

    Returns a reverse iterator to the end.

    +

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    + +

    Definition at line 496 of file storage.hpp.

    + +
    +
    + +

    ◆ rend() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator entt::basic_storage_impl< Entity, Type, Allocator, typename >::rend () const
    +
    +inline
    +
    + +

    Returns a reverse iterator to the end.

    +

    The returned iterator points to the element following the last instance of the reversed internal array. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the element following the last instance of the reversed internal array.
    + +

    Definition at line 491 of file storage.hpp.

    + +
    +
    + +

    ◆ reserve()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::reserve (const size_type cap)
    +
    +inline
    +
    + +

    Increases the capacity of a storage.

    +

    If the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.

    +
    Parameters
    + + +
    capDesired capacity.
    +
    +
    + +

    Definition at line 369 of file storage.hpp.

    + +
    +
    + +

    ◆ sort()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename Compare , typename Sort = std_sort, typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::sort (Compare compare,
    Sort algo = Sort{},
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Sort all elements according to the given comparison function.

    +
    See also
    sort_n
    +
    Template Parameters
    + + + + +
    CompareType of comparison function object.
    SortType of sort function object.
    ArgsTypes of arguments to forward to the sort function object.
    +
    +
    +
    Parameters
    + + + + +
    compareA valid comparison function object.
    algoA valid sort function object.
    argsArguments to forward to the sort function object, if any.
    +
    +
    + +

    Definition at line 690 of file storage.hpp.

    + +
    +
    + +

    ◆ sort_n()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    +
    +template<typename Compare , typename Sort = std_sort, typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::sort_n (const size_type length,
    Compare compare,
    Sort algo = Sort{},
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Sort elements according to the given comparison function.

    +

    The comparison function object must return true if the first element is less than the second one, false otherwise. The signature of the comparison function should be equivalent to one of the following:

    +
    bool(const Entity, const Entity);
    +
    bool(const Type &, const Type &);
    +

    Moreover, the comparison function object shall induce a strict weak ordering on the values.

    +

    The sort function oject must offer a member function template operator() that accepts three arguments:

    +
      +
    • An iterator to the first element of the range to sort.
    • +
    • An iterator past the last element of the range to sort.
    • +
    • A comparison function to use to compare the elements.
    • +
    +
    Warning
    Empty types are never instantiated. Therefore, only comparison function objects that require to return entities rather than components are accepted.
    +
    Template Parameters
    + + + + +
    CompareType of comparison function object.
    SortType of sort function object.
    ArgsTypes of arguments to forward to the sort function object.
    +
    +
    +
    Parameters
    + + + + + +
    lengthNumber of elements to sort.
    compareA valid comparison function object.
    algoA valid sort function object.
    argsArguments to forward to the sort function object, if any.
    +
    +
    + +

    Definition at line 666 of file storage.hpp.

    + +
    +
    + +

    ◆ swap_and_pop()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::swap_and_pop (const Entity entt,
    void * ud 
    )
    +
    +inlineoverrideprotected
    +
    + +

    Attempts to erase an entity from the internal packed array.

    +
    Parameters
    + + + +
    enttA valid entity identifier.
    udOptional user data that are forwarded as-is to derived classes.
    +
    +
    + +

    Definition at line 271 of file storage.hpp.

    + +
    +
    + +

    ◆ swap_at()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator , typename = void>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, typename >::swap_at (const std::size_t lhs,
    const std::size_t rhs 
    )
    +
    +inlinefinalprotected
    +
    + +

    Swaps two entities in the internal packed array.

    +
    Parameters
    + + + +
    lhsA valid position of an entity within storage.
    rhsA valid position of an entity within storage.
    +
    +
    + +

    Definition at line 260 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_7fdeb5322c9adc1b6d9330e5790be0ac.html b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_7fdeb5322c9adc1b6d9330e5790be0ac.html new file mode 100644 index 000000000..1e9935f6b --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_7fdeb5322c9adc1b6d9330e5790be0ac.html @@ -0,0 +1,574 @@ + + + + + + + +EnTT: entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Class Template Reference
    +
    +
    + +

    Default constructor. + More...

    + +

    #include <storage.hpp>

    +
    +Inheritance diagram for entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using value_type = Type
     Type of the objects assigned to entities.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    - Public Types inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    +using allocator_type = typename alloc_traits::allocator_type
     Allocator type.
     
    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using pointer = alloc_const_pointer
     Pointer type to contained entities.
     
    +using iterator = sparse_set_iterator
     Random access iterator type.
     
    +using reverse_iterator = std::reverse_iterator< iterator >
     Reverse iterator type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     basic_storage_impl (const allocator_type &alloc={})
     Default constructor. More...
     
    void get ([[maybe_unused]] const entity_type entt) const
     Fake get function. More...
     
    template<typename... Args>
    void emplace (const entity_type entt, Args &&... args)
     Assigns an entity to a storage and constructs its object. More...
     
    template<typename... Func>
    void patch ([[maybe_unused]] const entity_type entt, Func &&... func)
     Updates the instance assigned to a given entity in-place. More...
     
    template<typename It >
    void insert (It first, It last, const value_type &={})
     Assigns one or more entities to a storage. More...
     
    - Public Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
     basic_sparse_set (deletion_policy pol, const allocator_type &alloc={})
     Constructs an empty container with the given policy and allocator. More...
     
     basic_sparse_set (const allocator_type &alloc={})
     Constructs an empty container with the given allocator. More...
     
     basic_sparse_set (basic_sparse_set &&other)
     Move constructor. More...
     
    +virtual ~basic_sparse_set ()
     Default destructor.
     
    basic_sparse_setoperator= (basic_sparse_set &&other)
     Move assignment operator. More...
     
    deletion_policy policy () const
     Returns the deletion policy of a sparse set. More...
     
    size_type slot () const
     Returns the next slot available for insertion. More...
     
    void reserve (const size_type cap)
     Increases the capacity of a sparse set. More...
     
    size_type capacity () const
     Returns the number of elements that a sparse set has currently allocated space for. More...
     
    +void shrink_to_fit ()
     Requests the removal of unused capacity.
     
    size_type extent () const
     Returns the extent of a sparse set. More...
     
    size_type size () const
     Returns the number of elements in a sparse set. More...
     
    bool empty () const
     Checks whether a sparse set is empty. More...
     
    pointer data () const
     Direct access to the internal packed array. More...
     
    iterator begin () const
     Returns an iterator to the beginning. More...
     
    iterator end () const
     Returns an iterator to the end. More...
     
    reverse_iterator rbegin () const
     Returns a reverse iterator to the beginning. More...
     
    reverse_iterator rend () const
     Returns a reverse iterator to the end. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    bool contains (const entity_type entt) const
     Checks if a sparse set contains an entity. More...
     
    size_type index (const entity_type entt) const
     Returns the position of an entity in a sparse set. More...
     
    entity_type at (const size_type pos) const
     Returns the entity at specified location, with bounds checking. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the entity at specified location, without bounds checking. More...
     
    size_type emplace_back (const entity_type entt)
     Appends an entity to a sparse set. More...
     
    size_type emplace (const entity_type entt)
     Assigns an entity to a sparse set. More...
     
    void insert (It first, It last)
     Assigns one or more entities to a sparse set. More...
     
    void erase (const entity_type entt, void *ud=nullptr)
     Erases an entity from a sparse set. More...
     
    void erase (It first, It last, void *ud=nullptr)
     Erases entities from a set. More...
     
    bool remove (const entity_type entt, void *ud=nullptr)
     Removes an entity from a sparse set if it exists. More...
     
    size_type remove (It first, It last, void *ud=nullptr)
     Removes entities from a sparse set if they exist. More...
     
    +void compact ()
     Removes all tombstones from the packed array of a sparse set.
     
    void swap (const entity_type lhs, const entity_type rhs)
     Swaps two entities in the internal packed array. More...
     
    void sort_n (const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort the first count elements according to the given comparison function. More...
     
    void sort (Compare compare, Sort algo=Sort{}, Args &&... args)
     Sort all elements according to the given comparison function. More...
     
    void respect (const basic_sparse_set &other)
     Sort entities according to their order in another sparse set. More...
     
    void clear (void *ud=nullptr)
     Clears a sparse set. More...
     
    + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    virtual void swap_at ([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)
     Swaps two entities in the internal packed array. More...
     
    virtual void move_and_pop ([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)
     Moves an entity in the internal packed array. More...
     
    virtual void swap_and_pop (const Entity entt,[[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     
    virtual void in_place_pop (const Entity entt,[[maybe_unused]] void *ud)
     Attempts to erase an entity from the internal packed array. More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type, typename Allocator>
    +class entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >

    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 704 of file storage.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_storage_impl()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::basic_storage_impl (const allocator_typealloc = {})
    +
    +inlineexplicit
    +
    + +

    Default constructor.

    +
    Parameters
    + + +
    allocAllocator to use (possibly default-constructed).
    +
    +
    + +

    Definition at line 725 of file storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ emplace()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::emplace (const entity_type entt,
    Args &&... args 
    )
    +
    +inline
    +
    + +

    Assigns an entity to a storage and constructs its object.

    +
    Warning
    Attempting to use an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ArgsTypes of arguments to use to construct the object.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    argsParameters to use to construct an object for the entity.
    +
    +
    + +

    Definition at line 754 of file storage.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Fake get function.

    +
    Warning
    Attempting to use an entity that doesn't belong to the storage results in undefined behavior.
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    + +

    Definition at line 738 of file storage.hpp.

    + +
    +
    + +

    ◆ insert()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename It >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::insert (It first,
    It last,
    const value_type = {} 
    )
    +
    +inline
    +
    + +

    Assigns one or more entities to a storage.

    +
    Warning
    Attempting to assign an entity that already belongs to the storage results in undefined behavior.
    +
    Template Parameters
    + + +
    ItType of input iterator.
    +
    +
    +
    Parameters
    + + + +
    firstAn iterator to the first element of the range of entities.
    lastAn iterator past the last element of the range of entities.
    +
    +
    + +

    Definition at line 783 of file storage.hpp.

    + +
    +
    + +

    ◆ patch()

    + +
    +
    +
    +template<typename Entity , typename Type , typename Allocator >
    +
    +template<typename... Func>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >::patch ([[maybe_unused] ] const entity_type entt,
    Func &&... func 
    )
    +
    +inline
    +
    + +

    Updates the instance assigned to a given entity in-place.

    +
    Template Parameters
    + + +
    FuncTypes of the function objects to invoke.
    +
    +
    +
    Parameters
    + + + +
    enttA valid entity identifier.
    funcValid function objects.
    +
    +
    + +

    Definition at line 766 of file storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.map b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.map new file mode 100644 index 000000000..5180d105e --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.md5 b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.md5 new file mode 100644 index 000000000..134076f38 --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.md5 @@ -0,0 +1 @@ +1574ee9544990f7e4ab7fbbfadf3dee1 \ No newline at end of file diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.png b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.png new file mode 100644 index 000000000..fae1c7a69 Binary files /dev/null and b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_ae827f10793e454184ebdc79d5c3a73e.png differ diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.map b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.map new file mode 100644 index 000000000..5180d105e --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.md5 b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.md5 new file mode 100644 index 000000000..134076f38 --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.md5 @@ -0,0 +1 @@ +1574ee9544990f7e4ab7fbbfadf3dee1 \ No newline at end of file diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.png b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.png new file mode 100644 index 000000000..fae1c7a69 Binary files /dev/null and b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_cf5803b8805b7f040fc859b769c9208b.png differ diff --git a/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_f9c6abca16ece0f36046ff9cd63b98f1.html b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_f9c6abca16ece0f36046ff9cd63b98f1.html new file mode 100644 index 000000000..142ab7eb4 --- /dev/null +++ b/classentt_1_1basic__storage__impl_3_01Entity_00_01Type_00_01Allocator_00_01std_1_1enable__if__t_f9c6abca16ece0f36046ff9cd63b98f1.html @@ -0,0 +1,134 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedefentt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    at(const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_sparse_set(deletion_policy pol, const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(const allocator_type &alloc={})entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineexplicit
    basic_sparse_set(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    basic_storage_impl(const allocator_type &alloc={})entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inlineexplicit
    begin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    capacity() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    clear(void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    compact()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    contains(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    data() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace(const entity_type entt, Args &&... args)entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::emplace(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    emplace_back(const entity_type entt)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    empty() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    end() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    entity_type typedefentt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    erase(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    erase(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    extent() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    find(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    in_place_pop(const Entity entt,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    index(const entity_type entt) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    insert(It first, It last, const value_type &={})entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >::insert(It first, It last)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    move_and_pop([[maybe_unused]] const std::size_t from,[[maybe_unused]] const std::size_t to)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    operator=(basic_sparse_set &&other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    operator[](const size_type pos) constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    patch([[maybe_unused]] const entity_type entt, Func &&... func)entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >inline
    pointer typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    policy() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rbegin() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(const entity_type entt, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    remove(It first, It last, void *ud=nullptr)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    rend() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reserve(const size_type cap)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    respect(const basic_sparse_set &other)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    reverse_iterator typedefentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >
    shrink_to_fit()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    size_type typedefentt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    slot() constentt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort(Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    sort_n(const size_type length, Compare compare, Sort algo=Sort{}, Args &&... args)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap(const entity_type lhs, const entity_type rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inline
    swap_and_pop(const Entity entt,[[maybe_unused]] void *ud)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    swap_at([[maybe_unused]] const std::size_t lhs,[[maybe_unused]] const std::size_t rhs)entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlineprotectedvirtual
    value_type typedefentt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
    ~basic_sparse_set()entt::basic_sparse_set< Entity, std::allocator_traits< Allocator >::template rebind_alloc< Entity > >inlinevirtual
    + + + + diff --git a/classentt_1_1basic__storage__impl__coll__graph.map b/classentt_1_1basic__storage__impl__coll__graph.map new file mode 100644 index 000000000..c052430ef --- /dev/null +++ b/classentt_1_1basic__storage__impl__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage__impl__coll__graph.md5 b/classentt_1_1basic__storage__impl__coll__graph.md5 new file mode 100644 index 000000000..b9c2ffa9f --- /dev/null +++ b/classentt_1_1basic__storage__impl__coll__graph.md5 @@ -0,0 +1 @@ +deba88c7ec63168846634f34024c222d \ No newline at end of file diff --git a/classentt_1_1basic__storage__impl__coll__graph.png b/classentt_1_1basic__storage__impl__coll__graph.png new file mode 100644 index 000000000..d185b34d4 Binary files /dev/null and b/classentt_1_1basic__storage__impl__coll__graph.png differ diff --git a/classentt_1_1basic__storage__impl__inherit__graph.map b/classentt_1_1basic__storage__impl__inherit__graph.map new file mode 100644 index 000000000..b87f0b930 --- /dev/null +++ b/classentt_1_1basic__storage__impl__inherit__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classentt_1_1basic__storage__impl__inherit__graph.md5 b/classentt_1_1basic__storage__impl__inherit__graph.md5 new file mode 100644 index 000000000..97ef60d61 --- /dev/null +++ b/classentt_1_1basic__storage__impl__inherit__graph.md5 @@ -0,0 +1 @@ +c6e2880c525c96bc9432821d4437dea3 \ No newline at end of file diff --git a/classentt_1_1basic__storage__impl__inherit__graph.png b/classentt_1_1basic__storage__impl__inherit__graph.png new file mode 100644 index 000000000..222edbce7 Binary files /dev/null and b/classentt_1_1basic__storage__impl__inherit__graph.png differ diff --git a/classentt_1_1basic__storage__inherit__graph.map b/classentt_1_1basic__storage__inherit__graph.map new file mode 100644 index 000000000..8fafde58b --- /dev/null +++ b/classentt_1_1basic__storage__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1basic__storage__inherit__graph.md5 b/classentt_1_1basic__storage__inherit__graph.md5 new file mode 100644 index 000000000..ff6e44b39 --- /dev/null +++ b/classentt_1_1basic__storage__inherit__graph.md5 @@ -0,0 +1 @@ +3dc7fa38862b44423758e9aed408d40f \ No newline at end of file diff --git a/classentt_1_1basic__storage__inherit__graph.png b/classentt_1_1basic__storage__inherit__graph.png new file mode 100644 index 000000000..fe9c939b7 Binary files /dev/null and b/classentt_1_1basic__storage__inherit__graph.png differ diff --git a/classentt_1_1basic__view.html b/classentt_1_1basic__view.html index 8cc922d0c..a144a80f5 100644 --- a/classentt_1_1basic__view.html +++ b/classentt_1_1basic__view.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_view<... > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -80,14 +80,14 @@ class entt::basic_view<... >

    View.

    Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

    -

    Definition at line 24 of file fwd.hpp.

    +

    Definition at line 25 of file fwd.hpp.


    The documentation for this class was generated from the following file: diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html index 2b308a787..5d1ad9ffe 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -74,32 +74,32 @@ $(function() {

    This is the complete list of members for entt::basic_view< Entity, exclude_t< Exclude... >, Component... >, including all inherited members.

    - - + + - - + + - + - + - +
    back() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    basic_view() noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    basic_view(storage_type< Component > &... component, const storage_type< Exclude > &... epool) noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    basic_view()entt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    basic_view(storage_type< Component > &... component, const storage_type< Exclude > &... epool)entt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    begin() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    contains(const entity_type entt) constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each(Func func) constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each(Func func) constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each() const noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each() const noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    each() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    end() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    entity_type typedefentt::basic_view< Entity, exclude_t< Exclude... >, Component... >
    find(const entity_type entt) constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    front() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    iterator typedefentt::basic_view< Entity, exclude_t< Exclude... >, Component... >
    operator bool() const noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inlineexplicit
    operator bool() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inlineexplicit
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view< Entity, exclude_t< Exclude... >, Component... >friend
    rbegin() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    rend() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    reverse_iterator typedefentt::basic_view< Entity, exclude_t< Exclude... >, Component... >
    size_hint() const noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    size_hint() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    size_type typedefentt::basic_view< Entity, exclude_t< Exclude... >, Component... >
    use() const noexceptentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    use() constentt::basic_view< Entity, exclude_t< Exclude... >, Component... >inline
    diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html index 6f7ff2b94..b1a38fbbc 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_view< Entity, exclude_t< Exclude... >, Component... > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -103,20 +103,20 @@ using 

    Public Member Functions

    basic_view () noexcept
     Default constructor to use to create empty, invalid views.
     
     basic_view (storage_type< Component > &... component, const storage_type< Exclude > &... epool) noexcept
     Constructs a multi-type view from a set of storage classes. More...
     
    template<typename Comp >
    void use () const noexcept
     Forces the type to use to drive iterations. More...
     
    size_type size_hint () const noexcept
     Estimates the number of entities iterated by the view. More...
     
    basic_view ()
     Default constructor to use to create empty, invalid views.
     
     basic_view (storage_type< Component > &... component, const storage_type< Exclude > &... epool)
     Constructs a multi-type view from a set of storage classes. More...
     
    template<typename Comp >
    void use () const
     Forces the type to use to drive iterations. More...
     
    size_type size_hint () const
     Estimates the number of entities iterated by the view. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
     operator bool () const noexcept
     Checks if a view is properly initialized. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const noexcept
     Returns an iterable object to use to visit the view. More...
     
    template<typename Comp >
    iterable_view each () const noexcept
     Returns an iterable object to use to visit the view. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    template<typename Comp >
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    @@ -189,7 +189,7 @@ class entt::basic_view< Entity, exclude_t< Exclude... >, Component... &
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters

    Friends

    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    ExcludeTypes of components used to filter the view.
    ComponentTypes of components iterated by the view.
    @@ -198,8 +198,8 @@ class entt::basic_view< Entity, exclude_t< Exclude... >, Component... &

    Definition at line 67 of file view.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_view()

    + +

    ◆ basic_view()

    @@ -229,7 +229,7 @@ template<typename Entity , typename... Exclude, typename... Component>
    -inlinenoexcept
    @@ -352,8 +352,8 @@ template<typename Entity , typename... Exclude, typename... Component>
    - -

    ◆ each() [1/4]

    + +

    ◆ each() [1/4]

    @@ -372,7 +372,7 @@ template<typename Entity , typename... Exclude, typename... Component>
    -inlinenoexcept
    @@ -386,8 +386,8 @@ template<typename Entity , typename... Exclude, typename... Component>
    - -

    ◆ each() [2/4]

    + +

    ◆ each() [2/4]

    @@ -408,7 +408,7 @@ template<typename Comp >
    -inlinenoexcept
    @@ -462,6 +462,7 @@ template<typename Func >
    The signature of the function must be equivalent to one of the following forms:

    void(const entity_type, Type &...);
    void(Type &...);
    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    Template Parameters
    @@ -683,8 +684,8 @@ template<typename... Comp> - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -703,7 +704,7 @@ template<typename Entity , typename... Exclude, typename... Component>
    +inlineexplicit
    -inlineexplicitnoexcept
    @@ -781,8 +782,8 @@ template<typename Entity , typename... Exclude, typename... Component>
    - -

    ◆ size_hint()

    + +

    ◆ size_hint()

    @@ -801,7 +802,7 @@ template<typename Entity , typename... Exclude, typename... Component>
    -inlinenoexcept
    @@ -813,8 +814,8 @@ template<typename Entity , typename... Exclude, typename... Component>
    - -

    ◆ use()

    + +

    ◆ use()

    @@ -835,7 +836,7 @@ template<typename Comp >
    -inlinenoexcept
    @@ -894,7 +895,7 @@ template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs,

    Combines two views in a more specific one (friend function).

    Template Parameters
    - + @@ -910,10 +911,9 @@ template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs,
  • src/entt/entity/view.hpp
  • - diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html index 1e673abeb..b89bde08e 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html @@ -3,7 +3,7 @@ - +EnTT: Member List @@ -22,7 +22,7 @@ @@ -30,10 +30,10 @@
    IdA valid entity type (see entt_traits for more details).
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    EnTT -  3.7.0 +  3.8.0
    - + @@ -74,34 +74,33 @@ $(function() {

    This is the complete list of members for entt::basic_view< Entity, exclude_t<>, Component >, including all inherited members.

    - - - + + + - + - - - + + + - + - - - - - - - + + + + + +
    back() constentt::basic_view< Entity, exclude_t<>, Component >inline
    basic_view() noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    basic_view(storage_type &ref) noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    begin() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    basic_view()entt::basic_view< Entity, exclude_t<>, Component >inline
    basic_view(storage_type &ref)entt::basic_view< Entity, exclude_t<>, Component >inline
    begin() constentt::basic_view< Entity, exclude_t<>, Component >inline
    contains(const entity_type entt) constentt::basic_view< Entity, exclude_t<>, Component >inline
    data() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    data() constentt::basic_view< Entity, exclude_t<>, Component >inline
    each(Func func) constentt::basic_view< Entity, exclude_t<>, Component >inline
    each() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    empty() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    end() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    each() constentt::basic_view< Entity, exclude_t<>, Component >inline
    empty() constentt::basic_view< Entity, exclude_t<>, Component >inline
    end() constentt::basic_view< Entity, exclude_t<>, Component >inline
    entity_type typedefentt::basic_view< Entity, exclude_t<>, Component >
    find(const entity_type entt) constentt::basic_view< Entity, exclude_t<>, Component >inline
    front() constentt::basic_view< Entity, exclude_t<>, Component >inline
    get(const entity_type entt) constentt::basic_view< Entity, exclude_t<>, Component >inline
    iterator typedefentt::basic_view< Entity, exclude_t<>, Component >
    operator bool() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inlineexplicit
    operator bool() constentt::basic_view< Entity, exclude_t<>, Component >inlineexplicit
    operator[](const size_type pos) constentt::basic_view< Entity, exclude_t<>, Component >inline
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view< Entity, exclude_t<>, Component >friend
    raw() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    raw_type typedefentt::basic_view< Entity, exclude_t<>, Component >
    rbegin() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    rend() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    reverse_iterator typedefentt::basic_view< Entity, exclude_t<>, Component >
    size() const noexceptentt::basic_view< Entity, exclude_t<>, Component >inline
    size_type typedefentt::basic_view< Entity, exclude_t<>, Component >
    raw() constentt::basic_view< Entity, exclude_t<>, Component >inline
    rbegin() constentt::basic_view< Entity, exclude_t<>, Component >inline
    rend() constentt::basic_view< Entity, exclude_t<>, Component >inline
    reverse_iterator typedefentt::basic_view< Entity, exclude_t<>, Component >
    size() constentt::basic_view< Entity, exclude_t<>, Component >inline
    size_type typedefentt::basic_view< Entity, exclude_t<>, Component >
    diff --git a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html index 33e7348cd..b6dd961e2 100644 --- a/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html +++ b/classentt_1_1basic__view_3_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::basic_view< Entity, exclude_t<>, Component > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -84,10 +84,6 @@ $(function() { - - - @@ -107,37 +103,37 @@ using  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -150,9 +146,9 @@ Public Member Functions - - - + + + @@ -164,9 +160,9 @@ Public Member Functions - - - + + +

    Public Types

    -using raw_type = Component
     Type of component iterated by the view.
     
    using entity_type = Entity
     Underlying entity identifier.

    Public Member Functions

    basic_view () noexcept
     Default constructor to use to create empty, invalid views.
     
     basic_view (storage_type &ref) noexcept
     Constructs a single-type view from a storage class. More...
     
    size_type size () const noexcept
     Returns the number of entities that have the given component. More...
     
    bool empty () const noexcept
     Checks whether a view is empty. More...
     
    raw_typeraw () const noexcept
     Direct access to the list of components. More...
     
    const entity_typedata () const noexcept
     Direct access to the list of entities. More...
     
    iterator begin () const noexcept
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const noexcept
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const noexcept
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const noexcept
     Returns an iterator that is past the last entity of the reversed view. More...
     
    basic_view ()
     Default constructor to use to create empty, invalid views.
     
     basic_view (storage_type &ref)
     Constructs a single-type view from a storage class. More...
     
    size_type size () const
     Returns the number of entities that have the given component. More...
     
    bool empty () const
     Checks whether a view is empty. More...
     
    auto raw () const
     Direct access to the raw representation offered by the storage. More...
     
    auto data () const
     Direct access to the list of entities. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the identifier that occupies the given position. More...
     
     operator bool () const noexcept
     Checks if a view is properly initialized. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const noexcept
     Returns an iterable object to use to visit the view. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    @@ -193,7 +189,7 @@ class entt::basic_view< Entity, exclude_t<>, Component >
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    Template Parameters

    Friends

    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    ComponentType of component iterated by the view.
    @@ -201,8 +197,8 @@ class entt::basic_view< Entity, exclude_t<>, Component >

    Definition at line 587 of file view.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ basic_view()

    + +

    ◆ basic_view()

    @@ -222,7 +218,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept
    @@ -235,7 +231,7 @@ template<typename Entity , typename Component >
    -

    Definition at line 691 of file view.hpp.

    +

    Definition at line 690 of file view.hpp.

    @@ -268,12 +264,12 @@ template<typename Entity , typename Component >

    Returns the last entity of the view, if any.

    Returns
    The last entity of the view if one exists, the null entity otherwise.
    -

    Definition at line 802 of file view.hpp.

    +

    Definition at line 798 of file view.hpp.

    - -

    ◆ begin()

    + +

    ◆ begin()

    @@ -292,16 +288,16 @@ template<typename Entity , typename Component >
    -inlinenoexcept

    Returns an iterator to the first entity of the view.

    -

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    Returns
    An iterator to the first entity of the view.
    -

    Definition at line 743 of file view.hpp.

    +

    Definition at line 739 of file view.hpp.

    @@ -340,12 +336,12 @@ template<typename Entity , typename Component >
    Returns
    True if the view contains the given entity, false otherwise.
    -

    Definition at line 840 of file view.hpp.

    +

    Definition at line 836 of file view.hpp.

    - -

    ◆ data()

    + +

    ◆ data()

    @@ -356,7 +352,7 @@ template<typename Entity , typename Component >
    - + @@ -364,21 +360,21 @@ template<typename Entity , typename Component >
    const entity_type* entt::basic_view< Entity, exclude_t<>, Component >::data auto entt::basic_view< Entity, exclude_t<>, Component >::data ( ) const
    -inlinenoexcept

    Direct access to the list of entities.

    -

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    Returns
    A pointer to the array of entities.
    -

    Definition at line 731 of file view.hpp.

    +

    Definition at line 727 of file view.hpp.

    - -

    ◆ each() [1/2]

    + +

    ◆ each() [1/2]

    @@ -397,7 +393,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline
    @@ -407,7 +403,7 @@ template<typename Entity , typename Component >
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    Returns
    An iterable object to use to visit the view.
    -

    Definition at line 931 of file view.hpp.

    +

    Definition at line 927 of file view.hpp.

    @@ -444,6 +440,7 @@ template<typename Func > The signature of the function must be equivalent to one of the following forms:

    void(const entity_type, Component &);
    void(Component &);
    +
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:672
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    Template Parameters
    @@ -458,12 +455,12 @@ template<typename Func > -

    Definition at line 894 of file view.hpp.

    +

    Definition at line 890 of file view.hpp.

    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -482,7 +479,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline
    @@ -494,8 +491,8 @@ template<typename Entity , typename Component >
    - -

    ◆ end()

    + +

    ◆ end()

    @@ -514,7 +511,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline
    @@ -523,7 +520,7 @@ template<typename Entity , typename Component >

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the entity following the last entity of the view.
    -

    Definition at line 756 of file view.hpp.

    +

    Definition at line 752 of file view.hpp.

    @@ -562,7 +559,7 @@ template<typename Entity , typename Component >
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    -

    Definition at line 813 of file view.hpp.

    +

    Definition at line 809 of file view.hpp.

    @@ -594,7 +591,7 @@ template<typename Entity , typename Component >

    Returns the first entity of the view, if any.

    Returns
    The first entity of the view if one exists, the null entity otherwise.
    -

    Definition at line 792 of file view.hpp.

    +

    Definition at line 788 of file view.hpp.

    @@ -643,12 +640,12 @@ template<typename... Comp>
    Returns
    The component assigned to the entity.
    -

    Definition at line 860 of file view.hpp.

    +

    Definition at line 856 of file view.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -667,7 +664,7 @@ template<typename Entity , typename Component >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -675,7 +672,7 @@ template<typename Entity , typename Component >

    Checks if a view is properly initialized.

    Returns
    True if the view is properly initialized, false otherwise.
    -

    Definition at line 831 of file view.hpp.

    +

    Definition at line 827 of file view.hpp.

    @@ -714,12 +711,12 @@ template<typename Entity , typename Component >
    Returns
    The identifier that occupies the given position.
    -

    Definition at line 823 of file view.hpp.

    +

    Definition at line 819 of file view.hpp.

    - -

    ◆ raw()

    + +

    ◆ raw()

    @@ -730,7 +727,7 @@ template<typename Entity , typename Component >
    - + @@ -738,21 +735,20 @@ template<typename Entity , typename Component >
    raw_type* entt::basic_view< Entity, exclude_t<>, Component >::raw auto entt::basic_view< Entity, exclude_t<>, Component >::raw ( ) const
    -inlinenoexcept +inline
    -

    Direct access to the list of components.

    -

    The returned pointer is such that range [raw(), raw() + size()) is always a valid range, even if the container is empty.

    +

    Direct access to the raw representation offered by the storage.

    Returns
    A pointer to the array of components.
    -

    Definition at line 719 of file view.hpp.

    +

    Definition at line 715 of file view.hpp.

    - -

    ◆ rbegin()

    + +

    ◆ rbegin()

    @@ -771,21 +767,21 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline

    Returns an iterator to the first entity of the reversed view.

    -

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    Returns
    An iterator to the first entity of the reversed view.
    -

    Definition at line 768 of file view.hpp.

    +

    Definition at line 764 of file view.hpp.

    - -

    ◆ rend()

    + +

    ◆ rend()

    @@ -804,7 +800,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline
    @@ -813,12 +809,12 @@ template<typename Entity , typename Component >

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    Returns
    An iterator to the entity following the last entity of the reversed view.
    -

    Definition at line 783 of file view.hpp.

    +

    Definition at line 779 of file view.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    @@ -837,7 +833,7 @@ template<typename Entity , typename Component >
    -inlinenoexcept +inline
    @@ -891,7 +887,7 @@ template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs,

    Combines two views in a more specific one (friend function).

    Template Parameters
    - + @@ -907,10 +903,9 @@ template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs,
  • src/entt/entity/view.hpp
  • -
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:674
    diff --git a/classentt_1_1basic__view__impl.html b/classentt_1_1basic__view__impl.html new file mode 100644 index 000000000..a9f33da9d --- /dev/null +++ b/classentt_1_1basic__view__impl.html @@ -0,0 +1,93 @@ + + + + + + + +EnTT: entt::basic_view_impl<... > Class Template Reference + + + + + + + + + +
    +
    +
    IdA valid entity type (see entt_traits for more details).
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    entt::basic_view_impl<... > Class Template Reference
    +
    +
    + +

    View implementation. + More...

    +

    Detailed Description

    +

    template<typename...>
    +class entt::basic_view_impl<... >

    + +

    View implementation.

    +

    Primary template isn't defined on purpose. All the specializations give a compile-time error, but for a few reasonable cases.

    + +

    Definition at line 167 of file view.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_82b9be039aac848adf7885250b71bf8d7.html b/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_82b9be039aac848adf7885250b71bf8d7.html new file mode 100644 index 000000000..48c640a5a --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_82b9be039aac848adf7885250b71bf8d7.html @@ -0,0 +1,922 @@ + + + + + + + +EnTT: entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > > Class Template Reference
    +
    +
    + +

    Multi component view. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = internal::view_iterator< PolicyToBeRemoved, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Bidirectional iterator type.
     
    +using reverse_iterator = internal::view_iterator< PolicyToBeRemoved, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Reverse iterator type.
     
    +using iterable_view = iterable
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type< Component > &... component, const storage_type< Exclude > &... epool)
     Constructs a multi-type view from a set of storage classes. More...
     
    template<typename Comp >
    void use () const
     Forces the type to use to drive iterations. More...
     
    size_type size_hint () const
     Estimates the number of entities iterated by the view. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get ([[maybe_unused]] const entity_type entt) const
     Returns the components assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    template<typename Comp , typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    template<typename Comp >
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename PolicyToBeRemoved, typename Entity, typename... Exclude, typename... Component>
    +class entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >

    + +

    Multi component view.

    +

    Multi component views iterate over those entities that have at least all the given components in their bags. During initialization, a multi component view looks at the number of entities available for each component and uses the smallest set in order to get a performance boost when iterate.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pools iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + + + +
    PolicyToBeRemovedCommon (stricter) storage policy.
    EntityA valid entity type (see entt_traits for more details).
    ComponentTypes of components iterated by the view.
    ExcludeTypes of components used to filter the view.
    +
    +
    + +

    Definition at line 279 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::basic_view_impl (storage_type< Component > &... component,
    const storage_type< Exclude > &... epool 
    )
    +
    +inline
    +
    + +

    Constructs a multi-type view from a set of storage classes.

    +
    Parameters
    + + + +
    componentThe storage for the types to iterate.
    epoolThe storage for the types used to filter the view.
    +
    +
    + +

    Definition at line 415 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 505 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 446 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 534 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/4]

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a set of references to its non-empty components. The constness of the components is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 627 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/4]

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The pool of the suggested component is used to lead the iterations. The returned elements will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 644 of file view.hpp.

    + +
    +
    + +

    ◆ each() [3/4]

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a set of references to non-empty components. The constness of the components is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Type &...);
    +
    void(Type &...);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 590 of file view.hpp.

    + +
    +
    + +

    ◆ each() [4/4]

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp , typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The pool of the suggested component is used to lead the iterations. The returned entities will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + + +
    CompType of component to use to drive the iteration.
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 609 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 459 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 516 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 495 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the components assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The components assigned to the entity.
    + +

    Definition at line 555 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 525 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 471 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 486 of file view.hpp.

    + +
    +
    + +

    ◆ size_hint()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::size_hint () const
    +
    +inline
    +
    + +

    Estimates the number of entities iterated by the view.

    +
    Returns
    Estimated number of entities iterated by the view.
    + +

    Definition at line 434 of file view.hpp.

    + +
    +
    + +

    ◆ use()

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    void entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >::use () const
    +
    +inline
    +
    + +

    Forces the type to use to drive iterations.

    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    + +

    Definition at line 426 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename PolicyToBeRemoved , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_8bbd8679f3c9ccc76a20db50fd4e4f217.html b/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_8bbd8679f3c9ccc76a20db50fd4e4f217.html new file mode 100644 index 000000000..70a3e8fe9 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01PolicyToBeRemoved_00_01Entity_00_01type__list_3_01Component_8bbd8679f3c9ccc76a20db50fd4e4f217.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    basic_view_impl()entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    basic_view_impl(storage_type< Component > &... component, const storage_type< Exclude > &... epool)entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    begin() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    contains(const entity_type entt) constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each(Func func) constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each(Func func) constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    end() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    entity_type typedefentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >
    find(const entity_type entt) constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    front() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    iterable_view typedefentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >
    iterator typedefentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >
    operator bool() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inlineexplicit
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >friend
    rbegin() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    rend() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    reverse_iterator typedefentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >
    size_hint() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    size_type typedefentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >
    use() constentt::basic_view_impl< PolicyToBeRemoved, Entity, type_list< Component... >, type_list< Exclude... > >inline
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html new file mode 100644 index 000000000..27b906eee --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4-members.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    basic_view_impl()entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    basic_view_impl(storage_type< Component > &... component, const storage_type< Exclude > &... epool)entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    begin() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    contains(const entity_type entt) constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    each(Func func) constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    each(Func func) constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    each() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    each() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    end() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    entity_type typedefentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
    find(const entity_type entt) constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    front() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    iterable_view typedefentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
    iterator typedefentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
    operator bool() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inlineexplicit
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >friend
    rbegin() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    rend() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    reverse_iterator typedefentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
    size_hint() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    size_type typedefentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
    use() constentt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >inline
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html new file mode 100644 index 000000000..57e92b880 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01exclude__t_3_01Exclude_8_8_8_01_4_00_01Component_8_8_8_01_4.html @@ -0,0 +1,922 @@ + + + + + + + +EnTT: entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > Class Template Reference
    +
    +
    + +

    Multi component view. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = internal::view_iterator< Policy, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Bidirectional iterator type.
     
    +using reverse_iterator = internal::view_iterator< Policy, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Reverse iterator type.
     
    +using iterable_view = iterable
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type< Component > &... component, const storage_type< Exclude > &... epool)
     Constructs a multi-type view from a set of storage classes. More...
     
    template<typename Comp >
    void use () const
     Forces the type to use to drive iterations. More...
     
    size_type size_hint () const
     Estimates the number of entities iterated by the view. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get ([[maybe_unused]] const entity_type entt) const
     Returns the components assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    template<typename Comp , typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    template<typename Comp >
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename Policy, typename Entity, typename... Exclude, typename... Component>
    +class entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >

    + +

    Multi component view.

    +

    Multi component views iterate over those entities that have at least all the given components in their bags. During initialization, a multi component view looks at the number of entities available for each component and uses the smallest set in order to get a performance boost when iterate.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pools iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + + + +
    PolicyCommon (stricter) storage policy.
    EntityA valid entity type (see entt_traits for more details).
    ExcludeTypes of components used to filter the view.
    ComponentTypes of components iterated by the view.
    +
    +
    + +

    Definition at line 210 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::basic_view_impl (storage_type< Component > &... component,
    const storage_type< Exclude > &... epool 
    )
    +
    +inline
    +
    + +

    Constructs a multi-type view from a set of storage classes.

    +
    Parameters
    + + + +
    componentThe storage for the types to iterate.
    epoolThe storage for the types used to filter the view.
    +
    +
    + +

    Definition at line 365 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 455 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 396 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 484 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a set of references to its non-empty components. The constness of the components is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 576 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The pool of the suggested component is used to lead the iterations. The returned elements will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 593 of file view.hpp.

    + +
    +
    + +

    ◆ each() [3/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a set of references to non-empty components. The constness of the components is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Type &...);
    +
    void(Type &...);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 539 of file view.hpp.

    + +
    +
    + +

    ◆ each() [4/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp , typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The pool of the suggested component is used to lead the iterations. The returned entities will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + + +
    CompType of component to use to drive the iteration.
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 558 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 409 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 466 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 445 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the components assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The components assigned to the entity.
    + +

    Definition at line 504 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 475 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 421 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 436 of file view.hpp.

    + +
    +
    + +

    ◆ size_hint()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::size_hint () const
    +
    +inline
    +
    + +

    Estimates the number of entities iterated by the view.

    +
    Returns
    Estimated number of entities iterated by the view.
    + +

    Definition at line 384 of file view.hpp.

    + +
    +
    + +

    ◆ use()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::use () const
    +
    +inline
    +
    + +

    Forces the type to use to drive iterations.

    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    + +

    Definition at line 376 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Exclude, typename... Component>
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_04aa529a15014bb3a68ecb121782d9306.html b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_04aa529a15014bb3a68ecb121782d9306.html new file mode 100644 index 000000000..f4fe7e7c4 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_04aa529a15014bb3a68ecb121782d9306.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    basic_view_impl()entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    basic_view_impl(storage_type< Component > &... component, const storage_type< Exclude > &... epool)entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    begin() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    contains(const entity_type entt) constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each(Func func) constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each(Func func) constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    each() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    end() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    entity_type typedefentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >
    find(const entity_type entt) constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    front() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    get([[maybe_unused]] const entity_type entt) constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    iterable_view typedefentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >
    iterator typedefentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >
    operator bool() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inlineexplicit
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >friend
    rbegin() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    rend() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    reverse_iterator typedefentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >
    size_hint() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    size_type typedefentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >
    use() constentt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >inline
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_0662fd92bbb97472172178036a764308a.html b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_0662fd92bbb97472172178036a764308a.html new file mode 100644 index 000000000..b30c09594 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01Policy_00_01Entity_00_01type__list_3_01Component_8_8_8_01_4_0662fd92bbb97472172178036a764308a.html @@ -0,0 +1,922 @@ + + + + + + + +EnTT: entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > > Class Template Reference
    +
    +
    + +

    Multi component view. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = internal::view_iterator< Policy, basic_common_type, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Bidirectional iterator type.
     
    +using reverse_iterator = internal::view_iterator< Policy, basic_common_type, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>
     Reverse iterator type.
     
    +using iterable_view = iterable
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type< Component > &... component, const storage_type< Exclude > &... epool)
     Constructs a multi-type view from a set of storage classes. More...
     
    template<typename Comp >
    void use () const
     Forces the type to use to drive iterations. More...
     
    size_type size_hint () const
     Estimates the number of entities iterated by the view. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get ([[maybe_unused]] const entity_type entt) const
     Returns the components assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    template<typename Comp , typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    template<typename Comp >
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename Policy, typename Entity, typename... Component, typename... Exclude>
    +class entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >

    + +

    Multi component view.

    +

    Multi component views iterate over those entities that have at least all the given components in their bags. During initialization, a multi component view looks at the number of entities available for each component and uses the smallest set in order to get a performance boost when iterate.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pools iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share references to the underlying data structures of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + + + +
    PolicyCommon (stricter) storage policy.
    EntityA valid entity type (see entt_traits for more details).
    ComponentTypes of components iterated by the view.
    ExcludeTypes of components used to filter the view.
    +
    +
    + +

    Definition at line 275 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::basic_view_impl (storage_type< Component > &... component,
    const storage_type< Exclude > &... epool 
    )
    +
    +inline
    +
    + +

    Constructs a multi-type view from a set of storage classes.

    +
    Parameters
    + + + +
    componentThe storage for the types to iterate.
    epoolThe storage for the types used to filter the view.
    +
    +
    + +

    Definition at line 411 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 501 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 442 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 530 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a set of references to its non-empty components. The constness of the components is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 623 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The pool of the suggested component is used to lead the iterations. The returned elements will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 640 of file view.hpp.

    + +
    +
    + +

    ◆ each() [3/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a set of references to non-empty components. The constness of the components is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Type &...);
    +
    void(Type &...);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 586 of file view.hpp.

    + +
    +
    + +

    ◆ each() [4/4]

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename Comp , typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The pool of the suggested component is used to lead the iterations. The returned entities will therefore respect the order of the pool associated with that type.

    +
    See also
    each
    +
    Template Parameters
    + + + +
    CompType of component to use to drive the iteration.
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 605 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 455 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 512 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 491 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::get ([[maybe_unused] ] const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the components assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The components assigned to the entity.
    + +

    Definition at line 551 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 521 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 467 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 482 of file view.hpp.

    + +
    +
    + +

    ◆ size_hint()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::size_hint () const
    +
    +inline
    +
    + +

    Estimates the number of entities iterated by the view.

    +
    Returns
    Estimated number of entities iterated by the view.
    + +

    Definition at line 430 of file view.hpp.

    + +
    +
    + +

    ◆ use()

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename Comp >
    + + + + + +
    + + + + + + + +
    void entt::basic_view_impl< Policy, Entity, type_list< Component... >, type_list< Exclude... > >::use () const
    +
    +inline
    +
    + +

    Forces the type to use to drive iterations.

    +
    Template Parameters
    + + +
    CompType of component to use to drive the iteration.
    +
    +
    + +

    Definition at line 422 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename Policy , typename Entity , typename... Component, typename... Exclude>
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html new file mode 100644 index 000000000..d0e895306 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html @@ -0,0 +1,107 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    basic_view_impl()entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    basic_view_impl(storage_type &ref)entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    begin() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    contains(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    data() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    each(Func func) constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    each() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    empty() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    end() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    entity_type typedefentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
    find(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    front() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    get(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    iterable_view typedefentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
    iterator typedefentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
    operator bool() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inlineexplicit
    operator[](const size_type pos) constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >friend
    raw() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    rbegin() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    rend() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    reverse_iterator typedefentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
    size() constentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >inline
    size_type typedefentt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html new file mode 100644 index 000000000..5489f8882 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html @@ -0,0 +1,915 @@ + + + + + + + +EnTT: entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > Class Template Reference
    +
    +
    + +

    Single component view specialization. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = typename basic_common_type::iterator
     Random access iterator type.
     
    +using reverse_iterator = typename basic_common_type::reverse_iterator
     Reversed iterator type.
     
    +using iterable_view = iterable
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type &ref)
     Constructs a single-type view from a storage class. More...
     
    size_type size () const
     Returns the number of entities that have the given component. More...
     
    bool empty () const
     Checks whether a view is empty. More...
     
    auto raw () const
     Direct access to the raw representation offered by the storage. More...
     
    auto data () const
     Direct access to the list of entities. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the identifier that occupies the given position. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get (const entity_type entt) const
     Returns the component assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Component>
    +class entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >

    + +

    Single component view specialization.

    +

    Single component views are specialized in order to get a boost in terms of performance. This kind of views can access the underlying data structure directly and avoid superfluous checks.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pool iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share a reference to the underlying data structure of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + +
    EntityA valid entity type (see entt_traits for more details).
    ComponentType of component iterated by the view.
    +
    +
    + +

    Definition at line 649 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::basic_view_impl (storage_type & ref)
    +
    +inline
    +
    + +

    Constructs a single-type view from a storage class.

    +
    Parameters
    + + +
    refThe storage for the type to iterate.
    +
    +
    + +

    Definition at line 750 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 858 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 799 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 896 of file view.hpp.

    + +
    +
    + +

    ◆ data()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::data () const
    +
    +inline
    +
    + +

    Direct access to the list of entities.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +
    Returns
    A pointer to the array of entities.
    + +

    Definition at line 787 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a reference to its component if it's a non-empty one. The constness of the component is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 987 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a reference to the component if it's a non-empty one. The constness of the component is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Component &);
    +
    void(Component &);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 950 of file view.hpp.

    + +
    +
    + +

    ◆ empty()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    bool entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::empty () const
    +
    +inline
    +
    + +

    Checks whether a view is empty.

    +
    Returns
    True if the view is empty, false otherwise.
    + +

    Definition at line 767 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 812 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 869 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 848 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::get (const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the component assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The component assigned to the entity.
    + +

    Definition at line 916 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 887 of file view.hpp.

    + +
    +
    + +

    ◆ operator[]()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator[] (const size_type pos) const
    +
    +inline
    +
    + +

    Returns the identifier that occupies the given position.

    +
    Parameters
    + + +
    posPosition of the element to return.
    +
    +
    +
    Returns
    The identifier that occupies the given position.
    + +

    Definition at line 879 of file view.hpp.

    + +
    +
    + +

    ◆ raw()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::raw () const
    +
    +inline
    +
    + +

    Direct access to the raw representation offered by the storage.

    +
    Returns
    A pointer to the array of components.
    + +

    Definition at line 775 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 824 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 839 of file view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::size () const
    +
    +inline
    +
    + +

    Returns the number of entities that have the given component.

    +
    Returns
    Number of entities that have the given component.
    + +

    Definition at line 759 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compo77c0cba3c02c38afb11d654b7ee84d57.html b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compo77c0cba3c02c38afb11d654b7ee84d57.html new file mode 100644 index 000000000..1ade0ebc3 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compo77c0cba3c02c38afb11d654b7ee84d57.html @@ -0,0 +1,107 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    basic_view_impl()entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    basic_view_impl(storage_type &ref)entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    begin() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    contains(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    data() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    each(Func func) constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    each() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    empty() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    end() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    entity_type typedefentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >
    find(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    front() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    get(const entity_type entt) constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    iterable_view typedefentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >
    iterator typedefentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >
    operator bool() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inlineexplicit
    operator[](const size_type pos) constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >friend
    raw() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    rbegin() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    rend() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    reverse_iterator typedefentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >
    size() constentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >inline
    size_type typedefentt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compoc196a70e944112908b2508fd3a72b79f.html b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compoc196a70e944112908b2508fd3a72b79f.html new file mode 100644 index 000000000..77137b874 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01packed__storage__policy_00_01Entity_00_01type__list_3_01Compoc196a70e944112908b2508fd3a72b79f.html @@ -0,0 +1,914 @@ + + + + + + + +EnTT: entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> > Class Template Reference
    +
    +
    + +

    Single component view specialization. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = typename basic_common_type::iterator
     Random access iterator type.
     
    +using reverse_iterator = typename basic_common_type::reverse_iterator
     Reversed iterator type.
     
    +using iterable_view = internal::iterable_storage< Entity, Component >
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type &ref)
     Constructs a single-type view from a storage class. More...
     
    size_type size () const
     Returns the number of entities that have the given component. More...
     
    bool empty () const
     Checks whether a view is empty. More...
     
    auto raw () const
     Direct access to the raw representation offered by the storage. More...
     
    auto data () const
     Direct access to the list of entities. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the identifier that occupies the given position. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get (const entity_type entt) const
     Returns the component assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Component>
    +class entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >

    + +

    Single component view specialization.

    +

    Single component views are specialized in order to get a boost in terms of performance. This kind of views can access the underlying data structure directly and avoid superfluous checks.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pool iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share a reference to the underlying data structure of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + +
    EntityA valid entity type (see entt_traits for more details).
    ComponentType of component iterated by the view.
    +
    +
    + +

    Definition at line 696 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::basic_view_impl (storage_type & ref)
    +
    +inline
    +
    + +

    Constructs a single-type view from a storage class.

    +
    Parameters
    + + +
    refThe storage for the type to iterate.
    +
    +
    + +

    Definition at line 722 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 830 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 771 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 868 of file view.hpp.

    + +
    +
    + +

    ◆ data()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::data () const
    +
    +inline
    +
    + +

    Direct access to the list of entities.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +
    Returns
    A pointer to the array of entities.
    + +

    Definition at line 759 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a reference to its component if it's a non-empty one. The constness of the component is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 959 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a reference to the component if it's a non-empty one. The constness of the component is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Component &);
    +
    void(Component &);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 922 of file view.hpp.

    + +
    +
    + +

    ◆ empty()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    bool entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::empty () const
    +
    +inline
    +
    + +

    Checks whether a view is empty.

    +
    Returns
    True if the view is empty, false otherwise.
    + +

    Definition at line 739 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 784 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 841 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 820 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::get (const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the component assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The component assigned to the entity.
    + +

    Definition at line 888 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 859 of file view.hpp.

    + +
    +
    + +

    ◆ operator[]()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entity_type entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::operator[] (const size_type pos) const
    +
    +inline
    +
    + +

    Returns the identifier that occupies the given position.

    +
    Parameters
    + + +
    posPosition of the element to return.
    +
    +
    +
    Returns
    The identifier that occupies the given position.
    + +

    Definition at line 851 of file view.hpp.

    + +
    +
    + +

    ◆ raw()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::raw () const
    +
    +inline
    +
    + +

    Direct access to the raw representation offered by the storage.

    +
    Returns
    A pointer to the array of components.
    + +

    Definition at line 747 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 796 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 811 of file view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< packed_storage_policy, Entity, type_list< Component >, type_list<> >::size () const
    +
    +inline
    +
    + +

    Returns the number of entities that have the given component.

    +
    Returns
    Number of entities that have the given component.
    + +

    Definition at line 731 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html b/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html new file mode 100644 index 000000000..f3ebdd63f --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4-members.html @@ -0,0 +1,107 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component > Member List
    +
    +
    + +

    This is the complete list of members for entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    basic_view_impl()entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    basic_view_impl(storage_type &ref)entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    begin() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    contains(const entity_type entt) constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    data() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    each(Func func) constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    each() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    empty() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    end() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    entity_type typedefentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >
    find(const entity_type entt) constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    front() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    get(const entity_type entt) constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    iterable_view typedefentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >
    iterator typedefentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >
    operator bool() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inlineexplicit
    operator[](const size_type pos) constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >friend
    raw() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    rbegin() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    rend() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    reverse_iterator typedefentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >
    size() constentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >inline
    size_type typedefentt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >
    + + + + diff --git a/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html b/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html new file mode 100644 index 000000000..08121ce03 --- /dev/null +++ b/classentt_1_1basic__view__impl_3_01swap__and__pop__policy_00_01Entity_00_01exclude__t_3_4_00_01Component_01_4.html @@ -0,0 +1,915 @@ + + + + + + + +EnTT: entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Classes | +Public Types | +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component > Class Template Reference
    +
    +
    + +

    Single component view specialization. + More...

    + +

    #include <view.hpp>

    + + + + + + + + + + + + + + + + + +

    +Public Types

    +using entity_type = Entity
     Underlying entity identifier.
     
    +using size_type = std::size_t
     Unsigned integer type.
     
    +using iterator = typename basic_common_type::iterator
     Random access iterator type.
     
    +using reverse_iterator = typename basic_common_type::reverse_iterator
     Reversed iterator type.
     
    +using iterable_view = iterable
     Iterable view type.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    basic_view_impl ()
     Default constructor to use to create empty, invalid views.
     
     basic_view_impl (storage_type &ref)
     Constructs a single-type view from a storage class. More...
     
    size_type size () const
     Returns the number of entities that have the given component. More...
     
    bool empty () const
     Checks whether a view is empty. More...
     
    auto raw () const
     Direct access to the raw representation offered by the storage. More...
     
    auto data () const
     Direct access to the list of entities. More...
     
    iterator begin () const
     Returns an iterator to the first entity of the view. More...
     
    iterator end () const
     Returns an iterator that is past the last entity of the view. More...
     
    reverse_iterator rbegin () const
     Returns an iterator to the first entity of the reversed view. More...
     
    reverse_iterator rend () const
     Returns an iterator that is past the last entity of the reversed view. More...
     
    entity_type front () const
     Returns the first entity of the view, if any. More...
     
    entity_type back () const
     Returns the last entity of the view, if any. More...
     
    iterator find (const entity_type entt) const
     Finds an entity. More...
     
    entity_type operator[] (const size_type pos) const
     Returns the identifier that occupies the given position. More...
     
     operator bool () const
     Checks if a view is properly initialized. More...
     
    bool contains (const entity_type entt) const
     Checks if a view contains an entity. More...
     
    template<typename... Comp>
    decltype(auto) get (const entity_type entt) const
     Returns the component assigned to the given entity. More...
     
    template<typename Func >
    void each (Func func) const
     Iterates entities and components and applies the given function object to them. More...
     
    iterable_view each () const
     Returns an iterable object to use to visit the view. More...
     
    + + + + + +

    +Friends

    template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
     Combines two views in a more specific one (friend function). More...
     
    +

    Detailed Description

    +

    template<typename Entity, typename Component>
    +class entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >

    + +

    Single component view specialization.

    +

    Single component views are specialized in order to get a boost in terms of performance. This kind of views can access the underlying data structure directly and avoid superfluous checks.

    +

    Important

    +

    Iterators aren't invalidated if:

    + +

    In all other cases, modifying the pool iterated by the view in any way invalidates all the iterators and using them results in undefined behavior.

    +
    Note
    Views share a reference to the underlying data structure of the registry that generated them. Therefore any change to the entities and to the components made by means of the registry are immediately reflected by views.
    +
    Warning
    Lifetime of a view must not overcome that of the registry that generated it. In any other case, attempting to use a view results in undefined behavior.
    +
    Template Parameters
    + + + +
    EntityA valid entity type (see entt_traits for more details).
    ComponentType of component iterated by the view.
    +
    +
    + +

    Definition at line 613 of file view.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ basic_view_impl()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::basic_view_impl (storage_type & ref)
    +
    +inline
    +
    + +

    Constructs a single-type view from a storage class.

    +
    Parameters
    + + +
    refThe storage for the type to iterate.
    +
    +
    + +

    Definition at line 714 of file view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::back () const
    +
    +inline
    +
    + +

    Returns the last entity of the view, if any.

    +
    Returns
    The last entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 822 of file view.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::begin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the view.

    +

    The returned iterator points to the first entity of the view. If the view is empty, the returned iterator will be equal to end().

    +
    Returns
    An iterator to the first entity of the view.
    + +

    Definition at line 763 of file view.hpp.

    + +
    +
    + +

    ◆ contains()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    bool entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::contains (const entity_type entt) const
    +
    +inline
    +
    + +

    Checks if a view contains an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    True if the view contains the given entity, false otherwise.
    + +

    Definition at line 860 of file view.hpp.

    + +
    +
    + +

    ◆ data()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::data () const
    +
    +inline
    +
    + +

    Direct access to the list of entities.

    +

    The returned pointer is such that range [data(), data() + size()) is always a valid range, even if the container is empty.

    +
    Returns
    A pointer to the array of entities.
    + +

    Definition at line 751 of file view.hpp.

    + +
    +
    + +

    ◆ each() [1/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterable_view entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::each () const
    +
    +inline
    +
    + +

    Returns an iterable object to use to visit the view.

    +

    The iterable object returns tuples that contain the current entity and a reference to its component if it's a non-empty one. The constness of the component is as requested.

    +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Returns
    An iterable object to use to visit the view.
    + +

    Definition at line 951 of file view.hpp.

    + +
    +
    + +

    ◆ each() [2/2]

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Func >
    + + + + + +
    + + + + + + + + +
    void entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::each (Func func) const
    +
    +inline
    +
    + +

    Iterates entities and components and applies the given function object to them.

    +

    The function object is invoked for each entity. It is provided with the entity itself and a reference to the component if it's a non-empty one. The constness of the component is as requested.
    + The signature of the function must be equivalent to one of the following forms:

    +
    void(const entity_type, Component &);
    +
    void(Component &);
    + +
    Note
    Empty types aren't explicitly instantiated and therefore they are never returned during iterations.
    +
    Template Parameters
    + + +
    FuncType of the function object to invoke.
    +
    +
    +
    Parameters
    + + +
    funcA valid function object.
    +
    +
    + +

    Definition at line 914 of file view.hpp.

    + +
    +
    + +

    ◆ empty()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    bool entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::empty () const
    +
    +inline
    +
    + +

    Checks whether a view is empty.

    +
    Returns
    True if the view is empty, false otherwise.
    + +

    Definition at line 731 of file view.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    iterator entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::end () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the view.

    +

    The returned iterator points to the entity following the last entity of the view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the view.
    + +

    Definition at line 776 of file view.hpp.

    + +
    +
    + +

    ◆ find()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    iterator entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::find (const entity_type entt) const
    +
    +inline
    +
    + +

    Finds an entity.

    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    An iterator to the given entity if it's found, past the end iterator otherwise.
    + +

    Definition at line 833 of file view.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entity_type entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::front () const
    +
    +inline
    +
    + +

    Returns the first entity of the view, if any.

    +
    Returns
    The first entity of the view if one exists, the null entity otherwise.
    + +

    Definition at line 812 of file view.hpp.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename... Comp>
    + + + + + +
    + + + + + + + + +
    decltype(auto) entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::get (const entity_type entt) const
    +
    +inline
    +
    + +

    Returns the component assigned to the given entity.

    +

    Prefer this function instead of registry::get during iterations. It has far better performance than its counterpart.

    +
    Warning
    Attempting to use an invalid component type results in a compilation error. Attempting to use an entity that doesn't belong to the view results in undefined behavior.
    +
    Template Parameters
    + + +
    CompTypes of components to get.
    +
    +
    +
    Parameters
    + + +
    enttA valid entity identifier.
    +
    +
    +
    Returns
    The component assigned to the entity.
    + +

    Definition at line 880 of file view.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Checks if a view is properly initialized.

    +
    Returns
    True if the view is properly initialized, false otherwise.
    + +

    Definition at line 851 of file view.hpp.

    + +
    +
    + +

    ◆ operator[]()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + + +
    entity_type entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::operator[] (const size_type pos) const
    +
    +inline
    +
    + +

    Returns the identifier that occupies the given position.

    +
    Parameters
    + + +
    posPosition of the element to return.
    +
    +
    +
    Returns
    The identifier that occupies the given position.
    + +

    Definition at line 843 of file view.hpp.

    + +
    +
    + +

    ◆ raw()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    auto entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::raw () const
    +
    +inline
    +
    + +

    Direct access to the raw representation offered by the storage.

    +
    Returns
    A pointer to the array of components.
    + +

    Definition at line 739 of file view.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::rbegin () const
    +
    +inline
    +
    + +

    Returns an iterator to the first entity of the reversed view.

    +

    The returned iterator points to the first entity of the reversed view. If the view is empty, the returned iterator will be equal to rend().

    +
    Returns
    An iterator to the first entity of the reversed view.
    + +

    Definition at line 788 of file view.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    reverse_iterator entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::rend () const
    +
    +inline
    +
    + +

    Returns an iterator that is past the last entity of the reversed view.

    +

    The returned iterator points to the entity following the last entity of the reversed view. Attempting to dereference the returned iterator results in undefined behavior.

    +
    Returns
    An iterator to the entity following the last entity of the reversed view.
    + +

    Definition at line 803 of file view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename Entity , typename Component >
    + + + + + +
    + + + + + + + +
    size_type entt::basic_view_impl< swap_and_pop_policy, Entity, exclude_t<>, Component >::size () const
    +
    +inline
    +
    + +

    Returns the number of entities that have the given component.

    +
    Returns
    Number of entities that have the given component.
    + +

    Definition at line 723 of file view.hpp.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator|

    + +
    +
    +
    +template<typename Entity , typename Component >
    +
    +template<typename Id , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto operator| (const basic_view< Id, exclude_t< ELhs... >, CLhs... > & ,
    const basic_view< Id, exclude_t< ERhs... >, CRhs... > &  
    )
    +
    +friend
    +
    + +

    Combines two views in a more specific one (friend function).

    +
    Template Parameters
    + + + + + + +
    IdA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    CRhsComponent list of the second view.
    +
    +
    +
    Returns
    A more specific view.
    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1compressed__pair-members.html b/classentt_1_1compressed__pair-members.html new file mode 100644 index 000000000..583663d4c --- /dev/null +++ b/classentt_1_1compressed__pair-members.html @@ -0,0 +1,96 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::compressed_pair< First, Second > Member List
    +
    +
    + +

    This is the complete list of members for entt::compressed_pair< First, Second >, including all inherited members.

    + + + + + + + + + + + + + + + +
    compressed_pair()entt::compressed_pair< First, Second >inline
    compressed_pair(const compressed_pair &other)=defaultentt::compressed_pair< First, Second >
    compressed_pair(compressed_pair &&other)=defaultentt::compressed_pair< First, Second >
    compressed_pair(Arg &&arg, Other &&other)entt::compressed_pair< First, Second >inline
    compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other)entt::compressed_pair< First, Second >inline
    first()entt::compressed_pair< First, Second >inline
    first() constentt::compressed_pair< First, Second >inline
    get()entt::compressed_pair< First, Second >inline
    get() constentt::compressed_pair< First, Second >inline
    operator=(const compressed_pair &other)=defaultentt::compressed_pair< First, Second >
    operator=(compressed_pair &&other)=defaultentt::compressed_pair< First, Second >
    second()entt::compressed_pair< First, Second >inline
    second() constentt::compressed_pair< First, Second >inline
    swap(compressed_pair &other)entt::compressed_pair< First, Second >inline
    + + + + diff --git a/classentt_1_1compressed__pair.html b/classentt_1_1compressed__pair.html new file mode 100644 index 000000000..6138d3c0e --- /dev/null +++ b/classentt_1_1compressed__pair.html @@ -0,0 +1,732 @@ + + + + + + + +EnTT: entt::compressed_pair< First, Second > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Member Functions | +List of all members
    +
    +
    entt::compressed_pair< First, Second > Class Template Referencefinal
    +
    +
    + +

    A compressed pair. + More...

    + +

    #include <compressed_pair.hpp>

    +
    +Inheritance diagram for entt::compressed_pair< First, Second >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::compressed_pair< First, Second >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<First> && std::is_default_constructible_v<Second>>>
    constexpr compressed_pair ()
     Default constructor, conditionally enabled. More...
     
    constexpr compressed_pair (const compressed_pair &other)=default
     Copy constructor. More...
     
    constexpr compressed_pair (compressed_pair &&other)=default
     Move constructor. More...
     
    template<typename Arg , typename Other >
    constexpr compressed_pair (Arg &&arg, Other &&other)
     Constructs a pair from its values. More...
     
    template<typename... Args, typename... Other>
    constexpr compressed_pair (std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other)
     Constructs a pair by forwarding the arguments to its parts. More...
     
    constexpr compressed_pairoperator= (const compressed_pair &other)=default
     Copy assignment operator. More...
     
    constexpr compressed_pairoperator= (compressed_pair &&other)=default
     Move assignment operator. More...
     
    First & first ()
     Returns the first element that a pair stores. More...
     
    const First & first () const
     Returns the first element that a pair stores. More...
     
    Second & second ()
     Returns the second element that a pair stores. More...
     
    const Second & second () const
     Returns the second element that a pair stores. More...
     
    void swap (compressed_pair &other)
     Swaps two compressed pair objects. More...
     
    template<std::size_t Index>
    decltype(auto) get ()
     Extracts an element from the compressed pair. More...
     
    template<std::size_t Index>
    decltype(auto) get () const
     Extracts an element from the compressed pair. More...
     
    +

    Detailed Description

    +

    template<typename First, typename Second>
    +class entt::compressed_pair< First, Second >

    + +

    A compressed pair.

    +

    A pair that exploits the Empty Base Class Optimization (or EBCO) to reduce its final size to a minimum.

    +
    Template Parameters
    + + + +
    FirstThe type of the first element that the pair stores.
    SecondThe type of the second element that the pair stores.
    +
    +
    + +

    Definition at line 103 of file compressed_pair.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ compressed_pair() [1/5]

    + +
    +
    +
    +template<typename First , typename Second >
    +
    +template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<First> && std::is_default_constructible_v<Second>>>
    + + + + + +
    + + + + + + + +
    constexpr entt::compressed_pair< First, Second >::compressed_pair ()
    +
    +inlineconstexpr
    +
    + +

    Default constructor, conditionally enabled.

    +

    This constructor is only available when the types that the pair stores are both at least default constructible.

    +
    Template Parameters
    + + +
    DummyDummy template parameter used for internal purposes.
    +
    +
    + +

    Definition at line 120 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ compressed_pair() [2/5]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + + +
    constexpr entt::compressed_pair< First, Second >::compressed_pair (const compressed_pair< First, Second > & other)
    +
    +constexprdefault
    +
    + +

    Copy constructor.

    +
    Parameters
    + + +
    otherThe instance to copy from.
    +
    +
    + +
    +
    + +

    ◆ compressed_pair() [3/5]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + + +
    constexpr entt::compressed_pair< First, Second >::compressed_pair (compressed_pair< First, Second > && other)
    +
    +constexprdefault
    +
    + +

    Move constructor.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    + +
    +
    + +

    ◆ compressed_pair() [4/5]

    + +
    +
    +
    +template<typename First , typename Second >
    +
    +template<typename Arg , typename Other >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr entt::compressed_pair< First, Second >::compressed_pair (Arg && arg,
    Other && other 
    )
    +
    +inlineconstexpr
    +
    + +

    Constructs a pair from its values.

    +
    Template Parameters
    + + + +
    ArgType of value to use to initialize the first element.
    OtherType of value to use to initialize the second element.
    +
    +
    +
    Parameters
    + + + +
    argValue to use to initialize the first element.
    otherValue to use to initialize the second element.
    +
    +
    + +

    Definition at line 145 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ compressed_pair() [5/5]

    + +
    +
    +
    +template<typename First , typename Second >
    +
    +template<typename... Args, typename... Other>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    constexpr entt::compressed_pair< First, Second >::compressed_pair (std::piecewise_construct_t ,
    std::tuple< Args... > args,
    std::tuple< Other... > other 
    )
    +
    +inlineconstexpr
    +
    + +

    Constructs a pair by forwarding the arguments to its parts.

    +
    Template Parameters
    + + + +
    ArgsTypes of arguments to use to initialize the first element.
    OtherTypes of arguments to use to initialize the second element.
    +
    +
    +
    Parameters
    + + + +
    argsArguments to use to initialize the first element.
    otherArguments to use to initialize the second element.
    +
    +
    + +

    Definition at line 158 of file compressed_pair.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ first() [1/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + +
    First& entt::compressed_pair< First, Second >::first ()
    +
    +inline
    +
    + +

    Returns the first element that a pair stores.

    +
    Returns
    The first element that a pair stores.
    + +

    Definition at line 181 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ first() [2/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + +
    const First& entt::compressed_pair< First, Second >::first () const
    +
    +inline
    +
    + +

    Returns the first element that a pair stores.

    +
    Returns
    The first element that a pair stores.
    + +

    Definition at line 186 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ get() [1/2]

    + +
    +
    +
    +template<typename First , typename Second >
    +
    +template<std::size_t Index>
    + + + + + +
    + + + + + + + +
    decltype(auto) entt::compressed_pair< First, Second >::get ()
    +
    +inline
    +
    + +

    Extracts an element from the compressed pair.

    +
    Template Parameters
    + + +
    IndexAn integer value that is either 0 or 1.
    +
    +
    +
    Returns
    Returns a reference to the first element if Index is 0 and a reference to the second element if Index is 1.
    + +

    Definition at line 220 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ get() [2/2]

    + +
    +
    +
    +template<typename First , typename Second >
    +
    +template<std::size_t Index>
    + + + + + +
    + + + + + + + +
    decltype(auto) entt::compressed_pair< First, Second >::get () const
    +
    +inline
    +
    + +

    Extracts an element from the compressed pair.

    +
    Template Parameters
    + + +
    IndexAn integer value that is either 0 or 1.
    +
    +
    +
    Returns
    Returns a reference to the first element if Index is 0 and a reference to the second element if Index is 1.
    + +

    Definition at line 231 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + + +
    constexpr compressed_pair& entt::compressed_pair< First, Second >::operator= (compressed_pair< First, Second > && other)
    +
    +constexprdefault
    +
    + +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    +
    Returns
    This compressed pair object.
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + + +
    constexpr compressed_pair& entt::compressed_pair< First, Second >::operator= (const compressed_pair< First, Second > & other)
    +
    +constexprdefault
    +
    + +

    Copy assignment operator.

    +
    Parameters
    + + +
    otherThe instance to copy from.
    +
    +
    +
    Returns
    This compressed pair object.
    + +
    +
    + +

    ◆ second() [1/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + +
    Second& entt::compressed_pair< First, Second >::second ()
    +
    +inline
    +
    + +

    Returns the second element that a pair stores.

    +
    Returns
    The second element that a pair stores.
    + +

    Definition at line 194 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ second() [2/2]

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + +
    const Second& entt::compressed_pair< First, Second >::second () const
    +
    +inline
    +
    + +

    Returns the second element that a pair stores.

    +
    Returns
    The second element that a pair stores.
    + +

    Definition at line 199 of file compressed_pair.hpp.

    + +
    +
    + +

    ◆ swap()

    + +
    +
    +
    +template<typename First , typename Second >
    + + + + + +
    + + + + + + + + +
    void entt::compressed_pair< First, Second >::swap (compressed_pair< First, Second > & other)
    +
    +inline
    +
    + +

    Swaps two compressed pair objects.

    +
    Parameters
    + + +
    otherThe compressed pair to swap with.
    +
    +
    + +

    Definition at line 207 of file compressed_pair.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1compressed__pair__coll__graph.map b/classentt_1_1compressed__pair__coll__graph.map new file mode 100644 index 000000000..04820b652 --- /dev/null +++ b/classentt_1_1compressed__pair__coll__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classentt_1_1compressed__pair__coll__graph.md5 b/classentt_1_1compressed__pair__coll__graph.md5 new file mode 100644 index 000000000..9b2e2c82b --- /dev/null +++ b/classentt_1_1compressed__pair__coll__graph.md5 @@ -0,0 +1 @@ +58e69a25262df50159aea77979a354fd \ No newline at end of file diff --git a/classentt_1_1compressed__pair__coll__graph.png b/classentt_1_1compressed__pair__coll__graph.png new file mode 100644 index 000000000..d54659ae4 Binary files /dev/null and b/classentt_1_1compressed__pair__coll__graph.png differ diff --git a/classentt_1_1compressed__pair__inherit__graph.map b/classentt_1_1compressed__pair__inherit__graph.map new file mode 100644 index 000000000..04820b652 --- /dev/null +++ b/classentt_1_1compressed__pair__inherit__graph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classentt_1_1compressed__pair__inherit__graph.md5 b/classentt_1_1compressed__pair__inherit__graph.md5 new file mode 100644 index 000000000..9b2e2c82b --- /dev/null +++ b/classentt_1_1compressed__pair__inherit__graph.md5 @@ -0,0 +1 @@ +58e69a25262df50159aea77979a354fd \ No newline at end of file diff --git a/classentt_1_1compressed__pair__inherit__graph.png b/classentt_1_1compressed__pair__inherit__graph.png new file mode 100644 index 000000000..d54659ae4 Binary files /dev/null and b/classentt_1_1compressed__pair__inherit__graph.png differ diff --git a/classentt_1_1connection-members.html b/classentt_1_1connection-members.html index fd9402953..a9083a05e 100644 --- a/classentt_1_1connection-members.html +++ b/classentt_1_1connection-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,13 +74,13 @@ $(function() {

    This is the complete list of members for entt::connection, including all inherited members.

    - +
    connection()=defaultentt::connection
    operator bool() const noexceptentt::connectioninlineexplicit
    operator bool() constentt::connectioninlineexplicit
    release()entt::connectioninline
    sink classentt::connectionfriend
    diff --git a/classentt_1_1connection.html b/classentt_1_1connection.html index 9f8443bb0..04235f9a6 100644 --- a/classentt_1_1connection.html +++ b/classentt_1_1connection.html @@ -3,7 +3,7 @@ - + EnTT: entt::connection Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,9 +86,9 @@ Public Member Functions  connection ()=default  Default constructor.
      - operator bool () const noexcept - Checks whether a connection is properly initialized. More...
    -  + operator bool () const + Checks whether a connection is properly initialized. More...
    void release ()  Breaks the connection.
    @@ -108,8 +108,8 @@ template<typename >

    Definition at line 152 of file sigh.hpp.

    Member Function Documentation

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -126,7 +126,7 @@ template<typename > -inlineexplicitnoexcept +inlineexplicit
    @@ -144,7 +144,7 @@ template<typename >
    diff --git a/classentt_1_1delegate.html b/classentt_1_1delegate.html index 9422b4fb0..fe644dbb2 100644 --- a/classentt_1_1delegate.html +++ b/classentt_1_1delegate.html @@ -3,7 +3,7 @@ - + EnTT: entt::delegate< typename > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@
    - + @@ -87,7 +87,7 @@ class entt::delegate< typename > diff --git a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html index 72ba130e7..1985bad98 100644 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,26 +73,26 @@ $(function() {

    This is the complete list of members for entt::delegate< Ret(Args...)>, including all inherited members.

    - - - - - - - - + + + + + + + + - - + + - - + +
    connect() noexceptentt::delegate< Ret(Args...)>inline
    connect(Type &value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
    connect(Type *value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
    connect(function_type *function, const void *payload=nullptr) noexceptentt::delegate< Ret(Args...)>inline
    delegate() noexceptentt::delegate< Ret(Args...)>inline
    delegate(connect_arg_t< Candidate >) noexceptentt::delegate< Ret(Args...)>inline
    delegate(connect_arg_t< Candidate >, Type &&value_or_instance) noexceptentt::delegate< Ret(Args...)>inline
    delegate(function_type *function, const void *payload=nullptr) noexceptentt::delegate< Ret(Args...)>inline
    connect()entt::delegate< Ret(Args...)>inline
    connect(Type &value_or_instance)entt::delegate< Ret(Args...)>inline
    connect(Type *value_or_instance)entt::delegate< Ret(Args...)>inline
    connect(function_type *function, const void *payload=nullptr)entt::delegate< Ret(Args...)>inline
    delegate()entt::delegate< Ret(Args...)>inline
    delegate(connect_arg_t< Candidate >)entt::delegate< Ret(Args...)>inline
    delegate(connect_arg_t< Candidate >, Type &&value_or_instance)entt::delegate< Ret(Args...)>inline
    delegate(function_type *function, const void *payload=nullptr)entt::delegate< Ret(Args...)>inline
    function_type typedefentt::delegate< Ret(Args...)>
    instance() const noexceptentt::delegate< Ret(Args...)>inline
    operator bool() const noexceptentt::delegate< Ret(Args...)>inlineexplicit
    instance() constentt::delegate< Ret(Args...)>inline
    operator bool() constentt::delegate< Ret(Args...)>inlineexplicit
    operator()(Args... args) constentt::delegate< Ret(Args...)>inline
    operator==(const delegate< Ret(Args...)> &other) const noexceptentt::delegate< Ret(Args...)>inline
    reset() noexceptentt::delegate< Ret(Args...)>inline
    operator==(const delegate< Ret(Args...)> &other) constentt::delegate< Ret(Args...)>inline
    reset()entt::delegate< Ret(Args...)>inline
    result_type typedefentt::delegate< Ret(Args...)>
    type typedefentt::delegate< Ret(Args...)>
    diff --git a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html index 4ea214a6b..c20190325 100644 --- a/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1delegate_3_01Ret_07Args_8_8_8_08_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::delegate< Ret(Args...)> Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -97,51 +97,51 @@ using 

    Public Member Functions

    -delegate () noexcept - Default constructor.
    -  -template<auto Candidate> - delegate (connect_arg_t< Candidate >) noexcept - Constructs a delegate and connects a free function or an unbound member. More...
    -  -template<auto Candidate, typename Type > - delegate (connect_arg_t< Candidate >, Type &&value_or_instance) noexcept - Constructs a delegate and connects a free function with payload or a bound member. More...
    -  - delegate (function_type *function, const void *payload=nullptr) noexcept - Constructs a delegate and connects an user defined function with optional payload. More...
    -  -template<auto Candidate> -void connect () noexcept - Connects a free function or an unbound member to a delegate. More...
    -  -template<auto Candidate, typename Type > -void connect (Type &value_or_instance) noexcept - Connects a free function with payload or a bound member to a delegate. More...
    -  -template<auto Candidate, typename Type > -void connect (Type *value_or_instance) noexcept - Connects a free function with payload or a bound member to a delegate. More...
    -  -void connect (function_type *function, const void *payload=nullptr) noexcept - Connects an user defined function with optional payload to a delegate. More...
    -  -void reset () noexcept - Resets a delegate. More...
    -  -const void * instance () const noexcept - Returns the instance or the payload linked to a delegate, if any. More...
    -  +delegate () + Default constructor.
    +  +template<auto Candidate> + delegate (connect_arg_t< Candidate >) + Constructs a delegate and connects a free function or an unbound member. More...
    +  +template<auto Candidate, typename Type > + delegate (connect_arg_t< Candidate >, Type &&value_or_instance) + Constructs a delegate and connects a free function with payload or a bound member. More...
    +  + delegate (function_type *function, const void *payload=nullptr) + Constructs a delegate and connects an user defined function with optional payload. More...
    +  +template<auto Candidate> +void connect () + Connects a free function or an unbound member to a delegate. More...
    +  +template<auto Candidate, typename Type > +void connect (Type &value_or_instance) + Connects a free function with payload or a bound member to a delegate. More...
    +  +template<auto Candidate, typename Type > +void connect (Type *value_or_instance) + Connects a free function with payload or a bound member to a delegate. More...
    +  +void connect (function_type *function, const void *payload=nullptr) + Connects an user defined function with optional payload to a delegate. More...
    +  +void reset () + Resets a delegate. More...
    +  +const void * instance () const + Returns the instance or the payload linked to a delegate, if any. More...
    +  Ret operator() (Args... args) const  Triggers a delegate. More...
      - operator bool () const noexcept - Checks whether a delegate actually stores a listener. More...
    -  -bool operator== (const delegate< Ret(Args...)> &other) const noexcept - Compares the contents of two delegates. More...
    -  + operator bool () const + Checks whether a delegate actually stores a listener. More...
    +  +bool operator== (const delegate< Ret(Args...)> &other) const + Compares the contents of two delegates. More...

    Detailed Description

    template<typename Ret, typename... Args>
    @@ -160,8 +160,8 @@ class entt::delegate< Ret(Args...)>

    Definition at line 98 of file delegate.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ delegate() [1/3]

    + +

    ◆ delegate() [1/3]

    @@ -183,7 +183,7 @@ template<auto Candidate>
    -inlinenoexcept +inline
    @@ -200,8 +200,8 @@ template<auto Candidate>
    - -

    ◆ delegate() [2/3]

    + +

    ◆ delegate() [2/3]

    @@ -233,7 +233,7 @@ template<auto Candidate, typename Type >
    -inlinenoexcept +inline
    @@ -257,8 +257,8 @@ template<auto Candidate, typename Type >
    - -

    ◆ delegate() [3/3]

    + +

    ◆ delegate() [3/3]

    @@ -288,7 +288,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -307,8 +307,8 @@ template<typename Ret , typename... Args>

    Member Function Documentation

    - -

    ◆ connect() [1/4]

    + +

    ◆ connect() [1/4]

    @@ -329,7 +329,7 @@ template<auto Candidate>
    -inlinenoexcept +inline
    @@ -346,8 +346,8 @@ template<auto Candidate>
    - -

    ◆ connect() [2/4]

    + +

    ◆ connect() [2/4]

    @@ -377,7 +377,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -397,8 +397,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ connect() [3/4]

    + +

    ◆ connect() [3/4]

    @@ -420,7 +420,7 @@ template<auto Candidate, typename Type >
    -inlinenoexcept +inline
    @@ -446,8 +446,8 @@ template<auto Candidate, typename Type >
    - -

    ◆ connect() [4/4]

    + +

    ◆ connect() [4/4]

    @@ -469,13 +469,13 @@ template<auto Candidate, typename Type >
    -inlinenoexcept +inline

    Connects a free function with payload or a bound member to a delegate.

    -
    See also
    connect(Type &)
    +
    See also
    connect(Type &)
    Template Parameters
    @@ -494,8 +494,8 @@ template<auto Candidate, typename Type > - -

    ◆ instance()

    + +

    ◆ instance()

    @@ -514,7 +514,7 @@ template<typename Ret , typename... Args>
    CandidateFunction or member to connect to the delegate.
    -inlinenoexcept +inline
    @@ -526,8 +526,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -546,7 +546,7 @@ template<typename Ret , typename... Args>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -599,8 +599,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -620,7 +620,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -638,8 +638,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ reset()

    + +

    ◆ reset()

    @@ -658,7 +658,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -676,7 +676,7 @@ template<typename Ret , typename... Args>
    diff --git a/classentt_1_1dispatcher-members.html b/classentt_1_1dispatcher-members.html index 599eb1dd3..b6eea1008 100644 --- a/classentt_1_1dispatcher-members.html +++ b/classentt_1_1dispatcher-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,7 +89,7 @@ $(function() { diff --git a/classentt_1_1dispatcher.html b/classentt_1_1dispatcher.html index 437053e48..71718aa48 100644 --- a/classentt_1_1dispatcher.html +++ b/classentt_1_1dispatcher.html @@ -3,7 +3,7 @@ - + EnTT: entt::dispatcher Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -594,7 +594,7 @@ template<typename Event > diff --git a/classentt_1_1emitter-members.html b/classentt_1_1emitter-members.html index bbb2b8647..3881dc83b 100644 --- a/classentt_1_1emitter-members.html +++ b/classentt_1_1emitter-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,11 +74,11 @@ $(function() {

    This is the complete list of members for entt::emitter< Derived >, including all inherited members.

    - + - + @@ -89,7 +89,7 @@ $(function() {
    clear()entt::emitter< Derived >inline
    clear() noexceptentt::emitter< Derived >inline
    clear()entt::emitter< Derived >inline
    emitter()=defaultentt::emitter< Derived >
    emitter(emitter &&)=defaultentt::emitter< Derived >
    empty() constentt::emitter< Derived >inline
    empty() const noexceptentt::emitter< Derived >inline
    empty() constentt::emitter< Derived >inline
    erase(connection< Event > conn)entt::emitter< Derived >inline
    listener typedefentt::emitter< Derived >
    on(listener< Event > instance)entt::emitter< Derived >inline
    diff --git a/classentt_1_1emitter.html b/classentt_1_1emitter.html index 974c9fb1f..c0995b509 100644 --- a/classentt_1_1emitter.html +++ b/classentt_1_1emitter.html @@ -3,7 +3,7 @@ - + EnTT: entt::emitter< Derived > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -132,16 +132,16 @@ virtual void clear ()  Disconnects all the listeners for the given event type. More...
      -void clear () noexcept - Disconnects all the listeners. More...
    -  +void clear () + Disconnects all the listeners. More...
    +  template<typename Event > bool empty () const  Checks if there are listeners registered for the specific event. More...
      -bool empty () const noexcept - Checks if there are listeners registered with the event emitter. More...
    -  +bool empty () const + Checks if there are listeners registered with the event emitter. More...

    Detailed Description

    template<typename Derived>
    @@ -152,6 +152,7 @@ class entt::emitter< Derived >

    struct my_emitter: emitter<my_emitter> {
    // ...
    }
    +
    emitter()=default
    Default constructor.

    Pools for the type of events are created internally on the fly. It's not required to specify in advance the full list of accepted types.
    Moreover, whenever an event is published, an emitter provides the listeners with a reference to itself along with a reference to the event. Therefore listeners have an handy way to work with it without incurring in the need of capturing a reference to the emitter.

    Template Parameters
    @@ -203,8 +204,8 @@ template<typename Event >
    - -

    ◆ clear() [2/2]

    + +

    ◆ clear() [2/2]

    @@ -223,7 +224,7 @@ template<typename Derived >
    -inlinenoexcept +inline
    @@ -275,8 +276,8 @@ template<typename Event >
    - -

    ◆ empty() [2/2]

    + +

    ◆ empty() [2/2]

    @@ -295,7 +296,7 @@ template<typename Derived >
    -inlinenoexcept +inline
    @@ -539,10 +540,9 @@ template<typename Event , typename... Args>
  • src/entt/signal/emitter.hpp
  • -
    entt::emitter::emitter
    emitter()=default
    Default constructor.
    diff --git a/classentt_1_1entt__traits-members.html b/classentt_1_1entt__traits-members.html new file mode 100644 index 000000000..8af372acb --- /dev/null +++ b/classentt_1_1entt__traits-members.html @@ -0,0 +1,90 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::entt_traits< Type > Member List
    +
    +
    + +

    This is the complete list of members for entt::entt_traits< Type >, including all inherited members.

    + + + + + + + + + +
    construct(const entity_type entity=traits_type::entity_mask, const version_type version=traits_type::version_mask)entt::entt_traits< Type >inlinestatic
    difference_type typedefentt::entt_traits< Type >
    entity_type typedefentt::entt_traits< Type >
    to_entity(const value_type value)entt::entt_traits< Type >inlinestatic
    to_integral(const value_type value)entt::entt_traits< Type >inlinestatic
    to_version(const value_type value)entt::entt_traits< Type >inlinestatic
    value_type typedefentt::entt_traits< Type >
    version_type typedefentt::entt_traits< Type >
    + + + + diff --git a/classentt_1_1entt__traits.html b/classentt_1_1entt__traits.html new file mode 100644 index 000000000..49fb917a3 --- /dev/null +++ b/classentt_1_1entt__traits.html @@ -0,0 +1,327 @@ + + + + + + + +EnTT: entt::entt_traits< Type > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Types | +Static Public Member Functions | +List of all members
    +
    +
    entt::entt_traits< Type > Class Template Reference
    +
    +
    + +

    Entity traits. + More...

    + +

    #include <entity.hpp>

    +
    +Inheritance diagram for entt::entt_traits< Type >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::entt_traits< Type >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + + + + + + + + + + + +

    +Public Types

    +using value_type = Type
     Value type.
     
    +using entity_type = typename traits_type::entity_type
     Underlying entity type.
     
    +using version_type = typename traits_type::version_type
     Underlying version type.
     
    +using difference_type = typename traits_type::difference_type
     Difference type.
     
    + + + + + + + + + + + + + +

    +Static Public Member Functions

    static constexpr entity_type to_integral (const value_type value)
     Converts an entity to its underlying type. More...
     
    static constexpr entity_type to_entity (const value_type value)
     Returns the entity part once converted to the underlying type. More...
     
    static constexpr version_type to_version (const value_type value)
     Returns the version part once converted to the underlying type. More...
     
    static constexpr value_type construct (const entity_type entity=traits_type::entity_mask, const version_type version=traits_type::version_mask)
     Constructs an identifier from its parts. More...
     
    +

    Detailed Description

    +

    template<typename Type>
    +class entt::entt_traits< Type >

    + +

    Entity traits.

    +
    Template Parameters
    + + +
    TypeType of identifier.
    +
    +
    + +

    Definition at line 77 of file entity.hpp.

    +

    Member Function Documentation

    + +

    ◆ construct()

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static constexpr value_type entt::entt_traits< Type >::construct (const entity_type entity = traits_type::entity_mask,
    const version_type version = traits_type::version_mask 
    )
    +
    +inlinestaticconstexpr
    +
    + +

    Constructs an identifier from its parts.

    +

    If the version part is not provided, a tombstone is returned.
    + If the entity part is not provided, a null identifier is returned.

    +
    Parameters
    + + + +
    entityThe entity part of the identifier.
    versionThe version part of the identifier.
    +
    +
    +
    Returns
    A properly constructed identifier.
    + +

    Definition at line 128 of file entity.hpp.

    + +
    +
    + +

    ◆ to_entity()

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + +
    static constexpr entity_type entt::entt_traits< Type >::to_entity (const value_type value)
    +
    +inlinestaticconstexpr
    +
    + +

    Returns the entity part once converted to the underlying type.

    +
    Parameters
    + + +
    valueThe value to convert.
    +
    +
    +
    Returns
    The integral representation of the entity part.
    + +

    Definition at line 104 of file entity.hpp.

    + +
    +
    + +

    ◆ to_integral()

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + +
    static constexpr entity_type entt::entt_traits< Type >::to_integral (const value_type value)
    +
    +inlinestaticconstexpr
    +
    + +

    Converts an entity to its underlying type.

    +
    Parameters
    + + +
    valueThe value to convert.
    +
    +
    +
    Returns
    The integral representation of the given value.
    + +

    Definition at line 95 of file entity.hpp.

    + +
    +
    + +

    ◆ to_version()

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + +
    static constexpr version_type entt::entt_traits< Type >::to_version (const value_type value)
    +
    +inlinestaticconstexpr
    +
    + +

    Returns the version part once converted to the underlying type.

    +
    Parameters
    + + +
    valueThe value to convert.
    +
    +
    +
    Returns
    The integral representation of the version part.
    + +

    Definition at line 113 of file entity.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1entt__traits__coll__graph.map b/classentt_1_1entt__traits__coll__graph.map new file mode 100644 index 000000000..b247ec077 --- /dev/null +++ b/classentt_1_1entt__traits__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1entt__traits__coll__graph.md5 b/classentt_1_1entt__traits__coll__graph.md5 new file mode 100644 index 000000000..370512e0b --- /dev/null +++ b/classentt_1_1entt__traits__coll__graph.md5 @@ -0,0 +1 @@ +304da921962b5aacec7884ddfc0283d6 \ No newline at end of file diff --git a/classentt_1_1entt__traits__coll__graph.png b/classentt_1_1entt__traits__coll__graph.png new file mode 100644 index 000000000..48e770547 Binary files /dev/null and b/classentt_1_1entt__traits__coll__graph.png differ diff --git a/classentt_1_1entt__traits__inherit__graph.map b/classentt_1_1entt__traits__inherit__graph.map new file mode 100644 index 000000000..b247ec077 --- /dev/null +++ b/classentt_1_1entt__traits__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1entt__traits__inherit__graph.md5 b/classentt_1_1entt__traits__inherit__graph.md5 new file mode 100644 index 000000000..370512e0b --- /dev/null +++ b/classentt_1_1entt__traits__inherit__graph.md5 @@ -0,0 +1 @@ +304da921962b5aacec7884ddfc0283d6 \ No newline at end of file diff --git a/classentt_1_1entt__traits__inherit__graph.png b/classentt_1_1entt__traits__inherit__graph.png new file mode 100644 index 000000000..48e770547 Binary files /dev/null and b/classentt_1_1entt__traits__inherit__graph.png differ diff --git a/classentt_1_1family-members.html b/classentt_1_1family-members.html index 5b74f67f6..75138fc11 100644 --- a/classentt_1_1family-members.html +++ b/classentt_1_1family-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/classentt_1_1family.html b/classentt_1_1family.html index 49a18d99a..d0d6e30b7 100644 --- a/classentt_1_1family.html +++ b/classentt_1_1family.html @@ -3,7 +3,7 @@ - + EnTT: entt::family<... > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -109,7 +109,7 @@ class entt::family<... > diff --git a/classentt_1_1identifier-members.html b/classentt_1_1identifier-members.html index ca42e6ffe..42c58e83d 100644 --- a/classentt_1_1identifier-members.html +++ b/classentt_1_1identifier-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/classentt_1_1identifier.html b/classentt_1_1identifier.html index d9f645c09..c97b5b2bd 100644 --- a/classentt_1_1identifier.html +++ b/classentt_1_1identifier.html @@ -3,7 +3,7 @@ - + EnTT: entt::identifier< Types > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -113,6 +113,7 @@ class entt::identifier< Types >
    default:
    // ...
    }
    +
    entt::identifier
    Types identifiers.
    Definition: ident.hpp:44
    Template Parameters
    @@ -126,10 +127,9 @@ class entt::identifier< Types >
  • src/entt/core/ident.hpp
  • -
    Types identifiers.
    Definition: ident.hpp:44
    diff --git a/classentt_1_1iterable__view__new.html b/classentt_1_1iterable__view__new.html new file mode 100644 index 000000000..e3c8d65d3 --- /dev/null +++ b/classentt_1_1iterable__view__new.html @@ -0,0 +1,88 @@ + + + + + + + +EnTT: entt::iterable_view_new< typename, typename > Class Template Reference + + + + + + + + + +
    +
    +
    + + + + + +
    +
    EnTT +  3.8.0 +
    +
    + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    entt::iterable_view_new< typename, typename > Class Template Reference
    +
    +
    +

    Detailed Description

    +

    template<typename, typename>
    +class entt::iterable_view_new< typename, typename >

    + + +

    Definition at line 135 of file view.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Excl57da2c1f0cb6cb7230104a2d4712b396.html b/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Excl57da2c1f0cb6cb7230104a2d4712b396.html new file mode 100644 index 000000000..c96a56ac0 --- /dev/null +++ b/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Excl57da2c1f0cb6cb7230104a2d4712b396.html @@ -0,0 +1,89 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > > Member List
    +
    +
    + +

    This is the complete list of members for entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >, including all inherited members.

    + + + + + + + + +
    begin() const (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >inline
    end() const (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >inline
    iterable_view_new(const basic_view_type &parent) (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >inline
    iterator typedef (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >
    rbegin() const (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >inline
    rend() const (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >inline
    reverse_iterator typedef (defined in entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >)entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >
    + + + + diff --git a/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Exclc9ee8db0ea446fa1988c683057390421.html b/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Exclc9ee8db0ea446fa1988c683057390421.html new file mode 100644 index 000000000..8e94ec325 --- /dev/null +++ b/classentt_1_1iterable__view__new_3_01Policy_00_01basic__view_3_01Entity_00_01exclude__t_3_01Exclc9ee8db0ea446fa1988c683057390421.html @@ -0,0 +1,121 @@ + + + + + + + +EnTT: entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > > Class Template Referencefinal
    +
    +
    + + + + + + +

    +Public Types

    +using iterator = iterable_view_iterator< decltype(std::declval< basic_view_type >().begin())>
     
    +using reverse_iterator = iterable_view_iterator< decltype(std::declval< basic_view_type >().rbegin())>
     
    + + + + + + + + + + + +

    +Public Member Functions

    iterable_view_new (const basic_view_type &parent)
     
    +iterator begin () const
     
    +iterator end () const
     
    +reverse_iterator rbegin () const
     
    +reverse_iterator rend () const
     
    +

    Detailed Description

    +

    template<typename Policy, typename Entity, typename... Exclude, typename... Component>
    +class entt::iterable_view_new< Policy, basic_view< Entity, exclude_t< Exclude... >, Component... > >

    + + +

    Definition at line 139 of file view.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1member__class-members.html b/classentt_1_1member__class-members.html index 9fa04da7c..6c4677d85 100644 --- a/classentt_1_1member__class-members.html +++ b/classentt_1_1member__class-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/classentt_1_1member__class.html b/classentt_1_1member__class.html index 15a4385b7..1f606260f 100644 --- a/classentt_1_1member__class.html +++ b/classentt_1_1member__class.html @@ -3,7 +3,7 @@ - + EnTT: entt::member_class< Member > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,14 +98,14 @@ class entt::member_class< Member >
    -

    Definition at line 640 of file type_traits.hpp.

    +

    Definition at line 661 of file type_traits.hpp.


    The documentation for this class was generated from the following file: diff --git a/classentt_1_1meta__any-members.html b/classentt_1_1meta__any-members.html index df192fd23..89de94008 100644 --- a/classentt_1_1meta__any-members.html +++ b/classentt_1_1meta__any-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,43 +75,44 @@ $(function() { - - - - - - + + + + + + - - + + - + - - - - - + + + + + + + - - - - - + + + +
    allow_cast() constentt::meta_anyinline
    allow_cast()entt::meta_anyinline
    as_associative_container() noexceptentt::meta_anyinline
    as_associative_container() const noexceptentt::meta_anyinline
    as_ref() noexceptentt::meta_anyinline
    as_ref() const noexceptentt::meta_anyinline
    as_sequence_container() noexceptentt::meta_anyinline
    as_sequence_container() const noexceptentt::meta_anyinline
    as_associative_container()entt::meta_anyinline
    as_associative_container() constentt::meta_anyinline
    as_ref()entt::meta_anyinline
    as_ref() constentt::meta_anyinline
    as_sequence_container()entt::meta_anyinline
    as_sequence_container() constentt::meta_anyinline
    cast() constentt::meta_anyinline
    cast()entt::meta_anyinline
    data() const noexceptentt::meta_anyinline
    data() noexceptentt::meta_anyinline
    data() constentt::meta_anyinline
    data()entt::meta_anyinline
    emplace(Args &&... args)entt::meta_anyinline
    get(const id_type id) constentt::meta_anyinline
    get(const id_type id)entt::meta_anyinline
    invoke(const id_type id, Args &&... args) constentt::meta_any
    invoke(const id_type id, Args &&... args)entt::meta_any
    meta_any() noexceptentt::meta_anyinline
    meta_any()entt::meta_anyinline
    meta_any(std::in_place_type_t< Type >, Args &&... args)entt::meta_anyinlineexplicit
    meta_any(std::reference_wrapper< Type > value)entt::meta_anyinline
    meta_any(Type &&value)entt::meta_anyinline
    meta_any(const meta_any &other)=defaultentt::meta_any
    meta_any(meta_any &&other) noexceptentt::meta_anyinline
    operator bool() const noexceptentt::meta_anyinlineexplicit
    operator*() noexceptentt::meta_anyinline
    operator*() const noexceptentt::meta_anyinline
    operator=(meta_any other)entt::meta_anyinline
    meta_any(meta_any &&other)entt::meta_anyinline
    operator bool() constentt::meta_anyinlineexplicit
    operator*() constentt::meta_anyinline
    operator=(const meta_any &other)entt::meta_anyinline
    operator=(meta_any &&other)entt::meta_anyinline
    operator=(std::reference_wrapper< Type > value)entt::meta_anyinline
    operator=(Type &&value)entt::meta_anyinline
    operator==(const meta_any &other) constentt::meta_anyinline
    reset()entt::meta_anyinline
    set(const id_type id, Type &&value)entt::meta_any
    swap(meta_any &lhs, meta_any &rhs)entt::meta_anyfriend
    try_cast() constentt::meta_anyinline
    try_cast()entt::meta_anyinline
    type() const noexceptentt::meta_anyinline
    ~meta_any()entt::meta_anyinline
    try_cast() constentt::meta_anyinline
    try_cast()entt::meta_anyinline
    type() constentt::meta_anyinline
    ~meta_any()entt::meta_anyinline
    diff --git a/classentt_1_1meta__any.html b/classentt_1_1meta__any.html index a04869ec1..a0f155948 100644 --- a/classentt_1_1meta__any.html +++ b/classentt_1_1meta__any.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_any Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -68,7 +68,6 @@ $(function() {
    Public Member Functions | -Friends | List of all members
    entt::meta_any Class Reference
    @@ -82,44 +81,55 @@ $(function() { - - - + + + - + - + - + - + - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -170,47 +180,38 @@ Public Member Functions void  - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - -

    Public Member Functions

    meta_any () noexcept
     Default constructor.
     
    meta_any ()
     Default constructor.
     
    template<typename Type , typename... Args>
     meta_any (std::in_place_type_t< Type >, Args &&... args)
     Constructs a meta any by directly initializing the new object. More...
     Constructs a wrapper by directly initializing the new object. More...
     
    template<typename Type >
     meta_any (std::reference_wrapper< Type > value)
     Constructs a meta any that holds an unmanaged object. More...
     Constructs a wrapper that holds an unmanaged object. More...
     
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_any>>>
    template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
     meta_any (Type &&value)
     Constructs a meta any from a given value. More...
     Constructs a wrapper from a given value. More...
     
     meta_any (const meta_any &other)=default
     Copy constructor. More...
     
     meta_any (meta_any &&other) noexcept
     Move constructor. More...
     
     meta_any (meta_any &&other)
     Move constructor. More...
     
     ~meta_any ()
     Frees the internal storage, whatever it means.
     
    meta_anyoperator= (meta_any other)
     Assignment operator. More...
     
    meta_type type () const noexcept
     Returns the type of the underlying object. More...
     
    const void * data () const noexcept
     Returns an opaque pointer to the contained instance. More...
     
    void * data () noexcept
     Returns an opaque pointer to the contained instance. More...
     
    meta_anyoperator= (const meta_any &other)
     Copy assignment operator. More...
     
    meta_anyoperator= (meta_any &&other)
     Move assignment operator. More...
     
    template<typename Type >
    meta_anyoperator= (std::reference_wrapper< Type > value)
     Value assignment operator. More...
     
    template<typename Type >
    std::enable_if_t<!std::is_same_v< std::decay_t< Type >, meta_any >, meta_any & > operator= (Type &&value)
     Value assignment operator. More...
     
    meta_type type () const
     Returns the type of the underlying object. More...
     
    const void * data () const
     Returns an opaque pointer to the contained instance. More...
     
    void * data ()
     Returns an opaque pointer to the contained instance. More...
     
    template<typename... Args>
    meta_any invoke (const id_type id, Args &&... args) const
     Invokes the underlying function, if possible. More...
    reset ()
     Destroys contained object.
     
    meta_sequence_container as_sequence_container () noexcept
     Returns a sequence container proxy. More...
     
    meta_sequence_container as_sequence_container () const noexcept
     Returns a sequence container proxy. More...
     
    meta_associative_container as_associative_container () noexcept
     Returns an associative container proxy. More...
     
    meta_associative_container as_associative_container () const noexcept
     Returns an associative container proxy. More...
     
    meta_any operator* () noexcept
     Indirection operator for dereferencing opaque objects. More...
     
    meta_any operator* () const noexcept
     Indirection operator for dereferencing opaque objects. More...
     
     operator bool () const noexcept
     Returns false if a wrapper is invalid, true otherwise. More...
     
    meta_sequence_container as_sequence_container ()
     Returns a sequence container proxy. More...
     
    meta_sequence_container as_sequence_container () const
     Returns a sequence container proxy. More...
     
    meta_associative_container as_associative_container ()
     Returns an associative container proxy. More...
     
    meta_associative_container as_associative_container () const
     Returns an associative container proxy. More...
     
    meta_any operator* () const
     Indirection operator for dereferencing opaque objects. More...
     
     operator bool () const
     Returns false if a wrapper is invalid, true otherwise. More...
     
    bool operator== (const meta_any &other) const
     Checks if two wrappers differ in their content. More...
     
    meta_any as_ref () noexcept
     Aliasing constructor. More...
     
    meta_any as_ref () const noexcept
     Aliasing constructor. More...
     
    - - - - + + + + + +

    -Friends

    void swap (meta_any &lhs, meta_any &rhs)
     Swaps two meta any objects. More...
     
    meta_any as_ref ()
     Aliasing constructor. More...
     
    meta_any as_ref () const
     Aliasing constructor. More...
     

    Detailed Description

    Opaque wrapper for values of any type.

    -

    Definition at line 159 of file meta.hpp.

    +

    Definition at line 158 of file meta.hpp.

    Constructor & Destructor Documentation

    ◆ meta_any() [1/5]

    @@ -248,7 +249,7 @@ template<typename Type , typename... Args>
    -

    Constructs a meta any by directly initializing the new object.

    +

    Constructs a wrapper by directly initializing the new object.

    Template Parameters
    @@ -263,7 +264,7 @@ template<typename Type , typename... Args> -

    Definition at line 233 of file meta.hpp.

    +

    Definition at line 220 of file meta.hpp.

    @@ -293,7 +294,7 @@ template<typename Type >
    TypeType of object to use to initialize the wrapper.
    -

    Constructs a meta any that holds an unmanaged object.

    +

    Constructs a wrapper that holds an unmanaged object.

    Template Parameters
    @@ -307,7 +308,7 @@ template<typename Type > -

    Definition at line 245 of file meta.hpp.

    +

    Definition at line 232 of file meta.hpp.

    @@ -317,7 +318,7 @@ template<typename Type >
    -template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_any>>>
    +template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    TypeType of object to use to initialize the wrapper.
    @@ -337,7 +338,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s
    -

    Constructs a meta any from a given value.

    +

    Constructs a wrapper from a given value.

    Template Parameters
    @@ -351,7 +352,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -

    Definition at line 255 of file meta.hpp.

    +

    Definition at line 245 of file meta.hpp.

    @@ -389,8 +390,8 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s - -

    ◆ meta_any() [5/5]

    + +

    ◆ meta_any() [5/5]

    @@ -408,7 +409,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s
    TypeType of object to use to initialize the wrapper.
    -inlinenoexcept +inline
    @@ -421,7 +422,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -

    Definition at line 269 of file meta.hpp.

    +

    Definition at line 261 of file meta.hpp.

    @@ -460,7 +461,7 @@ template<typename Type >
    Returns
    True if there exists a viable conversion, false otherwise.
    -

    Definition at line 436 of file meta.hpp.

    +

    Definition at line 466 of file meta.hpp.

    @@ -498,42 +499,12 @@ template<typename Type >
    Returns
    A valid meta any object if there exists a viable conversion, an invalid one otherwise.
    -

    Definition at line 418 of file meta.hpp.

    +

    Definition at line 448 of file meta.hpp.

    - -

    ◆ as_associative_container() [1/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_associative_container entt::meta_any::as_associative_container () const
    -
    -inlinenoexcept
    -
    - -

    Returns an associative container proxy.

    -
    Returns
    An associative container proxy for the underlying object.
    - -

    Definition at line 493 of file meta.hpp.

    - -
    -
    - -

    ◆ as_associative_container() [2/2]

    + +

    ◆ as_associative_container() [1/2]

    @@ -550,7 +521,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -558,12 +529,12 @@ template<typename Type >

    Returns an associative container proxy.

    Returns
    An associative container proxy for the underlying object.
    -

    Definition at line 486 of file meta.hpp.

    +

    Definition at line 521 of file meta.hpp.

    - -

    ◆ as_ref() [1/2]

    + +

    ◆ as_associative_container() [2/2]

    @@ -572,7 +543,7 @@ template<typename Type >
    - + @@ -580,20 +551,20 @@ template<typename Type >
    meta_any entt::meta_any::as_ref meta_associative_container entt::meta_any::as_associative_container ( ) const
    -inlinenoexcept +inline
    -

    Aliasing constructor.

    -
    Returns
    A meta any that shares a reference to an unmanaged object.
    +

    Returns an associative container proxy.

    +
    Returns
    An associative container proxy for the underlying object.
    -

    Definition at line 557 of file meta.hpp.

    +

    Definition at line 528 of file meta.hpp.

    - -

    ◆ as_ref() [2/2]

    + +

    ◆ as_ref() [1/2]

    @@ -610,20 +581,20 @@ template<typename Type >
    -inlinenoexcept +inline

    Aliasing constructor.

    -
    Returns
    A meta any that shares a reference to an unmanaged object.
    +
    Returns
    A wrapper that shares a reference to an unmanaged object.
    -

    Definition at line 550 of file meta.hpp.

    +

    Definition at line 566 of file meta.hpp.

    - -

    ◆ as_sequence_container() [1/2]

    + +

    ◆ as_ref() [2/2]

    @@ -632,7 +603,7 @@ template<typename Type >
    - + @@ -640,20 +611,20 @@ template<typename Type >
    meta_sequence_container entt::meta_any::as_sequence_container meta_any entt::meta_any::as_ref ( ) const
    -inlinenoexcept +inline
    -

    Returns a sequence container proxy.

    -
    Returns
    A sequence container proxy for the underlying object.
    +

    Aliasing constructor.

    +
    Returns
    A wrapper that shares a reference to an unmanaged object.
    -

    Definition at line 476 of file meta.hpp.

    +

    Definition at line 571 of file meta.hpp.

    - -

    ◆ as_sequence_container() [2/2]

    + +

    ◆ as_sequence_container() [1/2]

    @@ -670,7 +641,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -678,7 +649,37 @@ template<typename Type >

    Returns a sequence container proxy.

    Returns
    A sequence container proxy for the underlying object.
    -

    Definition at line 469 of file meta.hpp.

    +

    Definition at line 504 of file meta.hpp.

    + + + + +

    ◆ as_sequence_container() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    meta_sequence_container entt::meta_any::as_sequence_container () const
    +
    +inline
    +
    + +

    Returns a sequence container proxy.

    +
    Returns
    A sequence container proxy for the underlying object.
    + +

    Definition at line 511 of file meta.hpp.

    @@ -718,7 +719,7 @@ template<typename Type >
    Returns
    A reference to the contained instance.
    -

    Definition at line 404 of file meta.hpp.

    +

    Definition at line 434 of file meta.hpp.

    @@ -758,42 +759,12 @@ template<typename Type >
    Returns
    A reference to the contained instance.
    -

    Definition at line 396 of file meta.hpp.

    +

    Definition at line 426 of file meta.hpp.

    - -

    ◆ data() [1/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    const void* entt::meta_any::data () const
    -
    -inlinenoexcept
    -
    - -

    Returns an opaque pointer to the contained instance.

    -
    Returns
    An opaque pointer the contained instance, if any.
    - -

    Definition at line 302 of file meta.hpp.

    - -
    -
    - -

    ◆ data() [2/2]

    + +

    ◆ data() [1/2]

    @@ -810,7 +781,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -818,7 +789,37 @@ template<typename Type >

    Returns an opaque pointer to the contained instance.

    Returns
    An opaque pointer the contained instance, if any.
    -

    Definition at line 307 of file meta.hpp.

    +

    Definition at line 337 of file meta.hpp.

    + + + + +

    ◆ data() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    const void* entt::meta_any::data () const
    +
    +inline
    +
    + +

    Returns an opaque pointer to the contained instance.

    +
    Returns
    An opaque pointer the contained instance, if any.
    + +

    Definition at line 332 of file meta.hpp.

    @@ -863,7 +864,7 @@ template<typename Type , typename... Args> -

    Definition at line 456 of file meta.hpp.

    +

    Definition at line 487 of file meta.hpp.

    @@ -898,9 +899,9 @@ template<typename Type , typename... Args> -
    Returns
    A meta any containing the value of the underlying variable.
    +
    Returns
    A wrapper containing the value of the underlying variable.
    -

    Definition at line 1602 of file meta.hpp.

    +

    Definition at line 1633 of file meta.hpp.

    @@ -935,9 +936,9 @@ template<typename Type , typename... Args> -
    Returns
    A meta any containing the value of the underlying variable.
    +
    Returns
    A wrapper containing the value of the underlying variable.
    -

    Definition at line 1597 of file meta.hpp.

    +

    Definition at line 1628 of file meta.hpp.

    @@ -984,9 +985,9 @@ template<typename... Args> -
    Returns
    A meta any containing the returned value, if any.
    +
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 1586 of file meta.hpp.

    +

    Definition at line 1617 of file meta.hpp.

    @@ -1033,14 +1034,14 @@ template<typename... Args> -
    Returns
    A meta any containing the returned value, if any.
    +
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 1580 of file meta.hpp.

    +

    Definition at line 1611 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -1057,7 +1058,7 @@ template<typename... Args>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -1065,12 +1066,12 @@ template<typename... Args>

    Returns false if a wrapper is invalid, true otherwise.

    Returns
    False if the wrapper is invalid, true otherwise.
    -

    Definition at line 521 of file meta.hpp.

    +

    Definition at line 549 of file meta.hpp.

    - -

    ◆ operator*() [1/2]

    + +

    ◆ operator*()

    @@ -1087,50 +1088,20 @@ template<typename... Args>
    -inlinenoexcept +inline

    Indirection operator for dereferencing opaque objects.

    -
    Returns
    A meta any that shares a reference to an unmanaged object if the wrapped element is dereferenceable, an invalid meta any otherwise.
    +
    Returns
    A wrapper that shares a reference to an unmanaged object if the wrapped element is dereferenceable, an invalid meta any otherwise.
    -

    Definition at line 511 of file meta.hpp.

    +

    Definition at line 539 of file meta.hpp.

    - -

    ◆ operator*() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_any entt::meta_any::operator* ()
    -
    -inlinenoexcept
    -
    - -

    Indirection operator for dereferencing opaque objects.

    -
    Returns
    A meta any that shares a reference to an unmanaged object if the wrapped element is dereferenceable, an invalid meta any otherwise.
    - -

    Definition at line 504 of file meta.hpp.

    - -
    -
    - -

    ◆ operator=()

    + +

    ◆ operator=() [1/4]

    @@ -1141,7 +1112,7 @@ template<typename... Args>
    meta_any& entt::meta_any::operator= ( - meta_any  + const meta_anyother) @@ -1153,16 +1124,143 @@ template<typename... Args>
    -

    Assignment operator.

    +

    Copy assignment operator.

    Parameters
    - +
    otherThe instance to assign from.
    otherThe instance to copy from.
    Returns
    This meta any object.
    -

    Definition at line 287 of file meta.hpp.

    +

    Definition at line 277 of file meta.hpp.

    + +
    + + +

    ◆ operator=() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + + +
    meta_any& entt::meta_any::operator= (meta_any && other)
    +
    +inline
    +
    + +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    +
    Returns
    This meta any object.
    + +

    Definition at line 289 of file meta.hpp.

    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + +
    meta_any& entt::meta_any::operator= (std::reference_wrapper< Type > value)
    +
    +inline
    +
    + +

    Value assignment operator.

    +
    Template Parameters
    + + +
    TypeType of object to use to initialize the wrapper.
    +
    +
    +
    Parameters
    + + +
    valueAn instance of an object to use to initialize the wrapper.
    +
    +
    +
    Returns
    This meta any object.
    + +

    Definition at line 304 of file meta.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>, meta_any &> entt::meta_any::operator= (Type && value)
    +
    +inline
    +
    + +

    Value assignment operator.

    +
    Template Parameters
    + + +
    TypeType of object to use to initialize the wrapper.
    +
    +
    +
    Parameters
    + + +
    valueAn instance of an object to use to initialize the wrapper.
    +
    +
    +
    Returns
    This meta any object.
    + +

    Definition at line 317 of file meta.hpp.

    @@ -1199,7 +1297,7 @@ template<typename... Args>
    Returns
    False if the two objects differ in their content, true otherwise.
    -

    Definition at line 530 of file meta.hpp.

    +

    Definition at line 558 of file meta.hpp.

    @@ -1248,7 +1346,7 @@ template<typename Type >
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 1592 of file meta.hpp.

    +

    Definition at line 1623 of file meta.hpp.

    @@ -1286,7 +1384,7 @@ template<typename Type >
    Returns
    A (possibly null) pointer to the contained instance.
    -

    Definition at line 372 of file meta.hpp.

    +

    Definition at line 402 of file meta.hpp.

    @@ -1324,12 +1422,12 @@ template<typename Type >
    Returns
    A (possibly null) pointer to the contained instance.
    -

    Definition at line 358 of file meta.hpp.

    +

    Definition at line 388 of file meta.hpp.

    - -

    ◆ type()

    + +

    ◆ type()

    @@ -1346,7 +1444,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -1354,55 +1452,7 @@ template<typename Type >

    Returns the type of the underlying object.

    Returns
    The type of the underlying object, if any.
    -

    Definition at line 1574 of file meta.hpp.

    - - - -

    Friends And Related Function Documentation

    - -

    ◆ swap

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void swap (meta_anylhs,
    meta_anyrhs 
    )
    -
    -friend
    -
    - -

    Swaps two meta any objects.

    -
    Parameters
    - - - -
    lhsA valid meta any object.
    rhsA valid meta any object.
    -
    -
    - -

    Definition at line 539 of file meta.hpp.

    +

    Definition at line 1605 of file meta.hpp.

    @@ -1412,7 +1462,7 @@ template<typename Type > diff --git a/classentt_1_1meta__associative__container-members.html b/classentt_1_1meta__associative__container-members.html index aadd65a27..1ac7f6247 100644 --- a/classentt_1_1meta__associative__container-members.html +++ b/classentt_1_1meta__associative__container-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,19 +80,19 @@ $(function() { find(meta_any)entt::meta_associative_containerinline insert(meta_any, meta_any)entt::meta_associative_containerinline iterator typedefentt::meta_associative_container - key_only() const noexceptentt::meta_associative_containerinline - key_type() const noexceptentt::meta_associative_containerinline - mapped_type() const noexceptentt::meta_associative_containerinline - meta_associative_container() noexcept=defaultentt::meta_associative_container - meta_associative_container(std::in_place_type_t< Type >, any instance) noexceptentt::meta_associative_containerinline - operator bool() const noexceptentt::meta_associative_containerinlineexplicit - size() const noexceptentt::meta_associative_containerinline + key_only() constentt::meta_associative_containerinline + key_type() constentt::meta_associative_containerinline + mapped_type() constentt::meta_associative_containerinline + meta_associative_container()=defaultentt::meta_associative_container + meta_associative_container(std::in_place_type_t< Type >, any instance)entt::meta_associative_containerinline + operator bool() constentt::meta_associative_containerinlineexplicit + size() constentt::meta_associative_containerinline size_type typedefentt::meta_associative_container - value_type() const noexceptentt::meta_associative_containerinline + value_type() constentt::meta_associative_containerinline diff --git a/classentt_1_1meta__associative__container.html b/classentt_1_1meta__associative__container.html index e2b2205a5..0df6bb309 100644 --- a/classentt_1_1meta__associative__container.html +++ b/classentt_1_1meta__associative__container.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,29 +100,29 @@ using 

    Public Member Functions

    -meta_associative_container () noexcept=default - Default constructor.
    -  -template<typename Type > - meta_associative_container (std::in_place_type_t< Type >, any instance) noexcept - Construct a proxy object for associative containers. More...
    -  -bool key_only () const noexcept - Returns true if a container is also key-only, false otherwise. More...
    -  -meta_type key_type () const noexcept - Returns the meta key type of a container. More...
    -  -meta_type mapped_type () const noexcept - Returns the meta mapped type of a container. More...
    -  -meta_type value_type () const noexcept - Returns the meta value type of a container. More...
    -  -size_type size () const noexcept - Returns the size of a container. More...
    -  +meta_associative_container ()=default + Default constructor.
    +  +template<typename Type > + meta_associative_container (std::in_place_type_t< Type >, any instance) + Construct a proxy object for associative containers. More...
    +  +bool key_only () const + Returns true if a container is also key-only, false otherwise. More...
    +  +meta_type key_type () const + Returns the meta key type of a container. More...
    +  +meta_type mapped_type () const + Returns the meta mapped type of a container. More...
    +  +meta_type value_type () const + Returns the meta value type of a container. More...
    +  +size_type size () const + Returns the size of a container. More...
    +  bool clear ()  Clears the content of a container. More...
      @@ -141,17 +141,17 @@ Public Member Functions iterator find (meta_any)  Returns an iterator to the element with a given key, if any. More...
      - operator bool () const noexcept - Returns false if a proxy is invalid, true otherwise. More...
    -  + operator bool () const + Returns false if a proxy is invalid, true otherwise. More...

    Detailed Description

    Proxy object for associative containers.

    -

    Definition at line 93 of file meta.hpp.

    +

    Definition at line 92 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_associative_container()

    + +

    ◆ meta_associative_container()

    @@ -170,7 +170,7 @@ template<typename Type >
    - any  + any  instance  @@ -181,7 +181,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -200,7 +200,7 @@ template<typename Type >
    -

    Definition at line 114 of file meta.hpp.

    +

    Definition at line 113 of file meta.hpp.

    @@ -231,7 +231,7 @@ template<typename Type >

    Returns an iterator to the first element of a container.

    Returns
    An iterator to the first element of the container.
    -

    Definition at line 2139 of file meta.hpp.

    +

    Definition at line 2171 of file meta.hpp.

    @@ -261,7 +261,7 @@ template<typename Type >

    Clears the content of a container.

    Returns
    True in case of success, false otherwise.
    -

    Definition at line 2133 of file meta.hpp.

    +

    Definition at line 2165 of file meta.hpp.

    @@ -291,7 +291,7 @@ template<typename Type >

    Returns an iterator that is past the last element of a container.

    Returns
    An iterator that is past the last element of the container.
    -

    Definition at line 2145 of file meta.hpp.

    +

    Definition at line 2177 of file meta.hpp.

    @@ -328,7 +328,7 @@ template<typename Type >
    Returns
    A bool denoting whether the removal took place.
    -

    Definition at line 2166 of file meta.hpp.

    +

    Definition at line 2198 of file meta.hpp.

    @@ -365,7 +365,7 @@ template<typename Type >
    Returns
    An iterator to the element with the given key, if any.
    -

    Definition at line 2176 of file meta.hpp.

    +

    Definition at line 2208 of file meta.hpp.

    @@ -413,12 +413,12 @@ template<typename Type >
    Returns
    A bool denoting whether the insertion took place.
    -

    Definition at line 2156 of file meta.hpp.

    +

    Definition at line 2188 of file meta.hpp.

    - -

    ◆ key_only()

    + +

    ◆ key_only()

    @@ -435,7 +435,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -443,12 +443,12 @@ template<typename Type >

    Returns true if a container is also key-only, false otherwise.

    Returns
    True if the associative container is also key-only, false otherwise.
    -

    Definition at line 2097 of file meta.hpp.

    +

    Definition at line 2129 of file meta.hpp.

    - -

    ◆ key_type()

    + +

    ◆ key_type()

    @@ -465,7 +465,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -473,12 +473,12 @@ template<typename Type >

    Returns the meta key type of a container.

    Returns
    The meta key type of the a container.
    -

    Definition at line 2106 of file meta.hpp.

    +

    Definition at line 2138 of file meta.hpp.

    - -

    ◆ mapped_type()

    + +

    ◆ mapped_type()

    @@ -495,7 +495,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -503,12 +503,12 @@ template<typename Type >

    Returns the meta mapped type of a container.

    Returns
    The meta mapped type of the a container.
    -

    Definition at line 2115 of file meta.hpp.

    +

    Definition at line 2147 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -525,7 +525,7 @@ template<typename Type >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -533,12 +533,12 @@ template<typename Type >

    Returns false if a proxy is invalid, true otherwise.

    Returns
    False if the proxy is invalid, true otherwise.
    -

    Definition at line 2185 of file meta.hpp.

    +

    Definition at line 2217 of file meta.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    @@ -555,7 +555,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -563,12 +563,12 @@ template<typename Type >

    Returns the size of a container.

    Returns
    The size of the container.
    -

    Definition at line 2127 of file meta.hpp.

    +

    Definition at line 2159 of file meta.hpp.

    - -

    ◆ value_type()

    + +

    ◆ value_type()

    @@ -585,7 +585,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -593,7 +593,7 @@ template<typename Type >

    Returns the meta value type of a container.

    Returns
    The meta value type of the container.
    -

    Definition at line 2121 of file meta.hpp.

    +

    Definition at line 2153 of file meta.hpp.

    @@ -603,7 +603,7 @@ template<typename Type > diff --git a/classentt_1_1meta__associative__container_1_1meta__iterator-members.html b/classentt_1_1meta__associative__container_1_1meta__iterator-members.html index 062f427bd..34f4457d6 100644 --- a/classentt_1_1meta__associative__container_1_1meta__iterator-members.html +++ b/classentt_1_1meta__associative__container_1_1meta__iterator-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,21 +75,21 @@ $(function() { - + - - + + - - - + + +
    difference_type typedefentt::meta_associative_container::meta_iterator
    iterator_category typedefentt::meta_associative_container::meta_iterator
    meta_iterator() noexcept=defaultentt::meta_associative_container::meta_iterator
    meta_iterator()=defaultentt::meta_associative_container::meta_iterator
    meta_iterator(std::integral_constant< bool, KeyOnly >, It iter)entt::meta_associative_container::meta_iteratorinline
    operator bool() const noexceptentt::meta_associative_container::meta_iteratorinlineexplicit
    operator!=(const meta_iterator &other) const noexceptentt::meta_associative_container::meta_iteratorinline
    operator bool() constentt::meta_associative_container::meta_iteratorinlineexplicit
    operator!=(const meta_iterator &other) constentt::meta_associative_container::meta_iteratorinline
    operator*() constentt::meta_associative_container::meta_iteratorinline
    operator++() noexceptentt::meta_associative_container::meta_iteratorinline
    operator++(int) noexceptentt::meta_associative_container::meta_iteratorinline
    operator==(const meta_iterator &other) const noexceptentt::meta_associative_container::meta_iteratorinline
    operator++()entt::meta_associative_container::meta_iteratorinline
    operator++(int)entt::meta_associative_container::meta_iteratorinline
    operator==(const meta_iterator &other) constentt::meta_associative_container::meta_iteratorinline
    pointer typedefentt::meta_associative_container::meta_iterator
    reference typedefentt::meta_associative_container::meta_iterator
    value_type typedefentt::meta_associative_container::meta_iterator
    diff --git a/classentt_1_1meta__associative__container_1_1meta__iterator.html b/classentt_1_1meta__associative__container_1_1meta__iterator.html index 16cc19773..6aca81d3f 100644 --- a/classentt_1_1meta__associative__container_1_1meta__iterator.html +++ b/classentt_1_1meta__associative__container_1_1meta__iterator.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container::meta_iterator Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -105,37 +105,37 @@ using 

    Public Member Functions

    -meta_iterator () noexcept=default - Default constructor.
    -  +meta_iterator ()=default + Default constructor.
    +  template<bool KeyOnly, typename It >  meta_iterator (std::integral_constant< bool, KeyOnly >, It iter)  Constructs an meta iterator from a given iterator. More...
      -meta_iteratoroperator++ () noexcept - Pre-increment operator. More...
    -  -meta_iterator operator++ (int) noexcept - Post-increment operator. More...
    -  -bool operator== (const meta_iterator &other) const noexcept - Checks if two iterators refer to the same element. More...
    -  -bool operator!= (const meta_iterator &other) const noexcept - Checks if two iterators refer to the same element. More...
    -  +meta_iteratoroperator++ () + Pre-increment operator. More...
    +  +meta_iterator operator++ (int) + Post-increment operator. More...
    +  +bool operator== (const meta_iterator &other) const + Checks if two iterators refer to the same element. More...
    +  +bool operator!= (const meta_iterator &other) const + Checks if two iterators refer to the same element. More...
    reference operator* () const  Indirection operator. More...
      - operator bool () const noexcept - Returns false if an iterator is invalid, true otherwise. More...
    -  + operator bool () const + Returns false if an iterator is invalid, true otherwise. More...

    Detailed Description

    Opaque iterator for associative containers.

    -

    Definition at line 1911 of file meta.hpp.

    +

    Definition at line 1942 of file meta.hpp.

    Constructor & Destructor Documentation

    ◆ meta_iterator()

    @@ -188,13 +188,13 @@ template<bool KeyOnly, typename It > -

    Definition at line 1954 of file meta.hpp.

    +

    Definition at line 1987 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -211,7 +211,7 @@ template<bool KeyOnly, typename It >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -219,12 +219,12 @@ template<bool KeyOnly, typename It >

    Returns false if an iterator is invalid, true otherwise.

    Returns
    False if the iterator is invalid, true otherwise.
    -

    Definition at line 2002 of file meta.hpp.

    +

    Definition at line 2035 of file meta.hpp.

    - -

    ◆ operator!=()

    + +

    ◆ operator!=()

    @@ -242,7 +242,7 @@ template<bool KeyOnly, typename It >
    -inlinenoexcept +inline
    @@ -256,7 +256,7 @@ template<bool KeyOnly, typename It >
    Returns
    False if the iterators refer to the same element, true otherwise.
    -

    Definition at line 1984 of file meta.hpp.

    +

    Definition at line 2017 of file meta.hpp.

    @@ -286,12 +286,12 @@ template<bool KeyOnly, typename It >

    Indirection operator.

    Returns
    The element to which the iterator points.
    -

    Definition at line 1992 of file meta.hpp.

    +

    Definition at line 2025 of file meta.hpp.

    - -

    ◆ operator++() [1/2]

    + +

    ◆ operator++() [1/2]

    @@ -308,7 +308,7 @@ template<bool KeyOnly, typename It >
    -inlinenoexcept +inline
    @@ -316,12 +316,12 @@ template<bool KeyOnly, typename It >

    Pre-increment operator.

    Returns
    This iterator.
    -

    Definition at line 1960 of file meta.hpp.

    +

    Definition at line 1993 of file meta.hpp.

    - -

    ◆ operator++() [2/2]

    + +

    ◆ operator++() [2/2]

    @@ -339,7 +339,7 @@ template<bool KeyOnly, typename It >
    -inlinenoexcept +inline
    @@ -347,12 +347,12 @@ template<bool KeyOnly, typename It >

    Post-increment operator.

    Returns
    This iterator.
    -

    Definition at line 1965 of file meta.hpp.

    +

    Definition at line 1998 of file meta.hpp.

    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -370,7 +370,7 @@ template<bool KeyOnly, typename It >
    -inlinenoexcept +inline
    @@ -384,7 +384,7 @@ template<bool KeyOnly, typename It >
    Returns
    True if the iterators refer to the same element, false otherwise.
    -

    Definition at line 1975 of file meta.hpp.

    +

    Definition at line 2008 of file meta.hpp.

    @@ -394,7 +394,7 @@ template<bool KeyOnly, typename It > diff --git a/classentt_1_1meta__function__helper-members.html b/classentt_1_1meta__function__helper-members.html index e46c42313..394da786d 100644 --- a/classentt_1_1meta__function__helper-members.html +++ b/classentt_1_1meta__function__helper-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/classentt_1_1meta__function__helper.html b/classentt_1_1meta__function__helper.html index c2f8c529c..1f5e8738c 100644 --- a/classentt_1_1meta__function__helper.html +++ b/classentt_1_1meta__function__helper.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_function_helper< Type, Candidate > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,14 +100,14 @@ class entt::meta_function_helper< Type, Candidate > -

    Definition at line 97 of file utility.hpp.

    +

    Definition at line 96 of file utility.hpp.


    The documentation for this class was generated from the following file: diff --git a/classentt_1_1meta__range-members.html b/classentt_1_1meta__range-members.html index abb625028..edf91c13a 100644 --- a/classentt_1_1meta__range-members.html +++ b/classentt_1_1meta__range-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,7 +82,7 @@ $(function() { diff --git a/classentt_1_1meta__range.html b/classentt_1_1meta__range.html index 40f0eecf3..825706fff 100644 --- a/classentt_1_1meta__range.html +++ b/classentt_1_1meta__range.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_range< Type, Node > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -232,7 +232,7 @@ template<typename Type , typename Node = typename Type::node_type> diff --git a/classentt_1_1meta__sequence__container-members.html b/classentt_1_1meta__sequence__container-members.html index 57eef8c23..22c8cc698 100644 --- a/classentt_1_1meta__sequence__container-members.html +++ b/classentt_1_1meta__sequence__container-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { erase(iterator)entt::meta_sequence_containerinline insert(iterator, meta_any)entt::meta_sequence_containerinline iterator typedefentt::meta_sequence_container - meta_sequence_container() noexcept=defaultentt::meta_sequence_container - meta_sequence_container(std::in_place_type_t< Type >, any instance) noexceptentt::meta_sequence_containerinline - operator bool() const noexceptentt::meta_sequence_containerinlineexplicit + meta_sequence_container()=defaultentt::meta_sequence_container + meta_sequence_container(std::in_place_type_t< Type >, any instance)entt::meta_sequence_containerinline + operator bool() constentt::meta_sequence_containerinlineexplicit operator[](size_type)entt::meta_sequence_containerinline resize(size_type)entt::meta_sequence_containerinline - size() const noexceptentt::meta_sequence_containerinline + size() constentt::meta_sequence_containerinline size_type typedefentt::meta_sequence_container - value_type() const noexceptentt::meta_sequence_containerinline + value_type() constentt::meta_sequence_containerinline diff --git a/classentt_1_1meta__sequence__container.html b/classentt_1_1meta__sequence__container.html index 831e28bb6..2f556320c 100644 --- a/classentt_1_1meta__sequence__container.html +++ b/classentt_1_1meta__sequence__container.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_sequence_container Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,20 +100,20 @@ using 

    Public Member Functions

    -meta_sequence_container () noexcept=default - Default constructor.
    -  -template<typename Type > - meta_sequence_container (std::in_place_type_t< Type >, any instance) noexcept - Construct a proxy object for sequence containers. More...
    -  -meta_type value_type () const noexcept - Returns the meta value type of a container. More...
    -  -size_type size () const noexcept - Returns the size of a container. More...
    -  +meta_sequence_container ()=default + Default constructor.
    +  +template<typename Type > + meta_sequence_container (std::in_place_type_t< Type >, any instance) + Construct a proxy object for sequence containers. More...
    +  +meta_type value_type () const + Returns the meta value type of a container. More...
    +  +size_type size () const + Returns the size of a container. More...
    +  bool resize (size_type)  Resizes a container to contain a given number of elements. More...
      @@ -135,17 +135,17 @@ Public Member Functions meta_any operator[] (size_type)  Returns a reference to the element at a given location of a container (no bounds checking is performed). More...
      - operator bool () const noexcept - Returns false if a proxy is invalid, true otherwise. More...
    -  + operator bool () const + Returns false if a proxy is invalid, true otherwise. More...

    Detailed Description

    Proxy object for sequence containers.

    -

    Definition at line 33 of file meta.hpp.

    +

    Definition at line 32 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_sequence_container()

    + +

    ◆ meta_sequence_container()

    @@ -164,7 +164,7 @@ template<typename Type >
    - any  + any  instance  @@ -175,7 +175,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -194,7 +194,7 @@ template<typename Type >
    -

    Definition at line 54 of file meta.hpp.

    +

    Definition at line 53 of file meta.hpp.

    @@ -225,7 +225,7 @@ template<typename Type >

    Returns an iterator to the first element of a container.

    Returns
    An iterator to the first element of the container.
    -

    Definition at line 1853 of file meta.hpp.

    +

    Definition at line 1884 of file meta.hpp.

    @@ -255,7 +255,7 @@ template<typename Type >

    Clears the content of a container.

    Returns
    True in case of success, false otherwise.
    -

    Definition at line 1844 of file meta.hpp.

    +

    Definition at line 1875 of file meta.hpp.

    @@ -285,7 +285,7 @@ template<typename Type >

    Returns an iterator that is past the last element of a container.

    Returns
    An iterator that is past the last element of the container.
    -

    Definition at line 1862 of file meta.hpp.

    +

    Definition at line 1893 of file meta.hpp.

    @@ -322,7 +322,7 @@ template<typename Type >
    Returns
    A pair consisting of an iterator following the last removed element (in case of success) and a bool denoting whether the insertion took place.
    -

    Definition at line 1885 of file meta.hpp.

    +

    Definition at line 1916 of file meta.hpp.

    @@ -370,12 +370,12 @@ template<typename Type >
    Returns
    A pair consisting of an iterator to the inserted element (in case of success) and a bool denoting whether the insertion took place.
    -

    Definition at line 1874 of file meta.hpp.

    +

    Definition at line 1905 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -392,7 +392,7 @@ template<typename Type >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -400,7 +400,7 @@ template<typename Type >

    Returns false if a proxy is invalid, true otherwise.

    Returns
    False if the proxy is invalid, true otherwise.
    -

    Definition at line 1905 of file meta.hpp.

    +

    Definition at line 1936 of file meta.hpp.

    @@ -437,7 +437,7 @@ template<typename Type >
    Returns
    A reference to the requested element properly wrapped.
    -

    Definition at line 1896 of file meta.hpp.

    +

    Definition at line 1927 of file meta.hpp.

    @@ -474,12 +474,12 @@ template<typename Type >
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 1835 of file meta.hpp.

    +

    Definition at line 1866 of file meta.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    @@ -496,7 +496,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -504,12 +504,12 @@ template<typename Type >

    Returns the size of a container.

    Returns
    The size of the container.
    -

    Definition at line 1825 of file meta.hpp.

    +

    Definition at line 1856 of file meta.hpp.

    - -

    ◆ value_type()

    + +

    ◆ value_type()

    @@ -526,7 +526,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -534,7 +534,7 @@ template<typename Type >

    Returns the meta value type of a container.

    Returns
    The meta value type of the container.
    -

    Definition at line 1816 of file meta.hpp.

    +

    Definition at line 1847 of file meta.hpp.

    @@ -544,7 +544,7 @@ template<typename Type > diff --git a/classentt_1_1meta__sequence__container_1_1meta__iterator-members.html b/classentt_1_1meta__sequence__container_1_1meta__iterator-members.html index e6857d606..8288e562a 100644 --- a/classentt_1_1meta__sequence__container_1_1meta__iterator-members.html +++ b/classentt_1_1meta__sequence__container_1_1meta__iterator-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,22 +75,22 @@ $(function() { - + - - + + - - - + + +
    difference_type typedefentt::meta_sequence_container::meta_iterator
    iterator_category typedefentt::meta_sequence_container::meta_iterator
    meta_iterator() noexcept=defaultentt::meta_sequence_container::meta_iterator
    meta_iterator()=defaultentt::meta_sequence_container::meta_iterator
    meta_iterator(It iter)entt::meta_sequence_container::meta_iteratorinline
    meta_sequence_container classentt::meta_sequence_container::meta_iteratorfriend
    operator bool() const noexceptentt::meta_sequence_container::meta_iteratorinlineexplicit
    operator!=(const meta_iterator &other) const noexceptentt::meta_sequence_container::meta_iteratorinline
    operator bool() constentt::meta_sequence_container::meta_iteratorinlineexplicit
    operator!=(const meta_iterator &other) constentt::meta_sequence_container::meta_iteratorinline
    operator*() constentt::meta_sequence_container::meta_iteratorinline
    operator++() noexceptentt::meta_sequence_container::meta_iteratorinline
    operator++(int) noexceptentt::meta_sequence_container::meta_iteratorinline
    operator==(const meta_iterator &other) const noexceptentt::meta_sequence_container::meta_iteratorinline
    operator++()entt::meta_sequence_container::meta_iteratorinline
    operator++(int)entt::meta_sequence_container::meta_iteratorinline
    operator==(const meta_iterator &other) constentt::meta_sequence_container::meta_iteratorinline
    pointer typedefentt::meta_sequence_container::meta_iterator
    reference typedefentt::meta_sequence_container::meta_iterator
    value_type typedefentt::meta_sequence_container::meta_iterator
    diff --git a/classentt_1_1meta__sequence__container_1_1meta__iterator.html b/classentt_1_1meta__sequence__container_1_1meta__iterator.html index 2d624c2ef..99ed80677 100644 --- a/classentt_1_1meta__sequence__container_1_1meta__iterator.html +++ b/classentt_1_1meta__sequence__container_1_1meta__iterator.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_sequence_container::meta_iterator Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -106,32 +106,32 @@ using 

    Public Member Functions

    -meta_iterator () noexcept=default - Default constructor.
    -  +meta_iterator ()=default + Default constructor.
    +  template<typename It >  meta_iterator (It iter)  Constructs a meta iterator from a given iterator. More...
      -meta_iteratoroperator++ () noexcept - Pre-increment operator. More...
    -  -meta_iterator operator++ (int) noexcept - Post-increment operator. More...
    -  -bool operator== (const meta_iterator &other) const noexcept - Checks if two iterators refer to the same element. More...
    -  -bool operator!= (const meta_iterator &other) const noexcept - Checks if two iterators refer to the same element. More...
    -  +meta_iteratoroperator++ () + Pre-increment operator. More...
    +  +meta_iterator operator++ (int) + Post-increment operator. More...
    +  +bool operator== (const meta_iterator &other) const + Checks if two iterators refer to the same element. More...
    +  +bool operator!= (const meta_iterator &other) const + Checks if two iterators refer to the same element. More...
    reference operator* () const  Indirection operator. More...
      - operator bool () const noexcept - Returns false if an iterator is invalid, true otherwise. More...
    -  + operator bool () const + Returns false if an iterator is invalid, true otherwise. More...
    +  @@ -143,7 +143,7 @@ class 

    Friends

    Detailed Description

    Opaque iterator for sequence containers.

    -

    Definition at line 1643 of file meta.hpp.

    +

    Definition at line 1674 of file meta.hpp.

    Constructor & Destructor Documentation

    ◆ meta_iterator()

    @@ -185,13 +185,13 @@ template<typename It > -

    Definition at line 1684 of file meta.hpp.

    +

    Definition at line 1715 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -208,7 +208,7 @@ template<typename It >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -216,12 +216,12 @@ template<typename It >

    Returns false if an iterator is invalid, true otherwise.

    Returns
    False if the iterator is invalid, true otherwise.
    -

    Definition at line 1732 of file meta.hpp.

    +

    Definition at line 1763 of file meta.hpp.

    - -

    ◆ operator!=()

    + +

    ◆ operator!=()

    @@ -239,7 +239,7 @@ template<typename It >
    -inlinenoexcept +inline
    @@ -253,7 +253,7 @@ template<typename It >
    Returns
    False if the iterators refer to the same element, true otherwise.
    -

    Definition at line 1714 of file meta.hpp.

    +

    Definition at line 1745 of file meta.hpp.

    @@ -283,12 +283,12 @@ template<typename It >

    Indirection operator.

    Returns
    The element to which the iterator points.
    -

    Definition at line 1722 of file meta.hpp.

    +

    Definition at line 1753 of file meta.hpp.

    - -

    ◆ operator++() [1/2]

    + +

    ◆ operator++() [1/2]

    @@ -305,7 +305,7 @@ template<typename It >
    -inlinenoexcept +inline
    @@ -313,12 +313,12 @@ template<typename It >

    Pre-increment operator.

    Returns
    This iterator.
    -

    Definition at line 1690 of file meta.hpp.

    +

    Definition at line 1721 of file meta.hpp.

    - -

    ◆ operator++() [2/2]

    + +

    ◆ operator++() [2/2]

    @@ -336,7 +336,7 @@ template<typename It >
    -inlinenoexcept +inline
    @@ -344,12 +344,12 @@ template<typename It >

    Post-increment operator.

    Returns
    This iterator.
    -

    Definition at line 1695 of file meta.hpp.

    +

    Definition at line 1726 of file meta.hpp.

    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -367,7 +367,7 @@ template<typename It >
    -inlinenoexcept +inline
    @@ -381,7 +381,7 @@ template<typename It >
    Returns
    True if the iterators refer to the same element, false otherwise.
    -

    Definition at line 1705 of file meta.hpp.

    +

    Definition at line 1736 of file meta.hpp.

    @@ -391,7 +391,7 @@ template<typename It > diff --git a/classentt_1_1meta__type-members.html b/classentt_1_1meta__type-members.html index 765a3ee95..c895a5a2f 100644 --- a/classentt_1_1meta__type-members.html +++ b/classentt_1_1meta__type-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,59 +73,59 @@ $(function() {

    This is the complete list of members for entt::meta_type, including all inherited members.

    - + - + - + - - + + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + - + - - - + + +
    base() const noexceptentt::meta_typeinline
    base() constentt::meta_typeinline
    base(const id_type id) constentt::meta_typeinline
    base_node_type typedefentt::meta_type
    construct(meta_any *const args, const size_type sz) constentt::meta_typeinline
    construct(Args &&... args) constentt::meta_typeinline
    ctor() const noexceptentt::meta_typeinline
    ctor() constentt::meta_typeinline
    ctor() constentt::meta_typeinline
    data() const noexceptentt::meta_typeinline
    data() constentt::meta_typeinline
    data(const id_type id) constentt::meta_typeinline
    extent(size_type dim={}) const noexceptentt::meta_typeinline
    func() const noexceptentt::meta_typeinline
    extent(size_type dim={}) constentt::meta_typeinline
    func() constentt::meta_typeinline
    func(const id_type id) constentt::meta_typeinline
    get(const id_type id, meta_handle instance) constentt::meta_typeinline
    id() const noexceptentt::meta_typeinline
    info() const noexceptentt::meta_typeinline
    id() constentt::meta_typeinline
    info() constentt::meta_typeinline
    invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) constentt::meta_typeinline
    invoke(const id_type id, meta_handle instance, Args &&... args) constentt::meta_typeinline
    is_array() const noexceptentt::meta_typeinline
    is_associative_container() const noexceptentt::meta_typeinline
    is_class() const noexceptentt::meta_typeinline
    is_enum() const noexceptentt::meta_typeinline
    is_floating_point() const noexceptentt::meta_typeinline
    is_function_pointer() const noexceptentt::meta_typeinline
    is_integral() const noexceptentt::meta_typeinline
    is_member_function_pointer() const noexceptentt::meta_typeinline
    is_member_object_pointer() const noexceptentt::meta_typeinline
    is_pointer() const noexceptentt::meta_typeinline
    is_pointer_like() const noexceptentt::meta_typeinline
    is_sequence_container() const noexceptentt::meta_typeinline
    is_template_specialization() const noexceptentt::meta_typeinline
    is_union() const noexceptentt::meta_typeinline
    is_void() const noexceptentt::meta_typeinline
    meta_type(node_type *curr=nullptr) noexceptentt::meta_typeinline
    meta_type(base_node_type *curr) noexceptentt::meta_typeinline
    is_array() constentt::meta_typeinline
    is_associative_container() constentt::meta_typeinline
    is_class() constentt::meta_typeinline
    is_enum() constentt::meta_typeinline
    is_floating_point() constentt::meta_typeinline
    is_function_pointer() constentt::meta_typeinline
    is_integral() constentt::meta_typeinline
    is_member_function_pointer() constentt::meta_typeinline
    is_member_object_pointer() constentt::meta_typeinline
    is_pointer() constentt::meta_typeinline
    is_pointer_like() constentt::meta_typeinline
    is_sequence_container() constentt::meta_typeinline
    is_template_specialization() constentt::meta_typeinline
    is_union() constentt::meta_typeinline
    is_void() constentt::meta_typeinline
    meta_type(node_type *curr=nullptr)entt::meta_typeinline
    meta_type(base_node_type *curr)entt::meta_typeinline
    node_type typedefentt::meta_type
    operator bool() const noexceptentt::meta_typeinlineexplicit
    operator==(const meta_type &other) const noexceptentt::meta_typeinline
    prop() const noexceptentt::meta_typeinline
    operator bool() constentt::meta_typeinlineexplicit
    operator==(const meta_type &other) constentt::meta_typeinline
    prop() constentt::meta_typeinline
    prop(meta_any key) constentt::meta_typeinline
    rank() const noexceptentt::meta_typeinline
    remove_extent() const noexceptentt::meta_typeinline
    remove_pointer() const noexceptentt::meta_typeinline
    reset() noexceptentt::meta_typeinline
    rank() constentt::meta_typeinline
    remove_extent() constentt::meta_typeinline
    remove_pointer() constentt::meta_typeinline
    reset()entt::meta_typeinline
    set(const id_type id, meta_handle instance, Type &&value) constentt::meta_typeinline
    size_of() const noexceptentt::meta_typeinline
    size_of() constentt::meta_typeinline
    size_type typedefentt::meta_type
    template_arg(size_type index) const noexceptentt::meta_typeinline
    template_arity() const noexceptentt::meta_typeinline
    template_type() const noexceptentt::meta_typeinline
    template_arg(size_type index) constentt::meta_typeinline
    template_arity() constentt::meta_typeinline
    template_type() constentt::meta_typeinline
    diff --git a/classentt_1_1meta__type.html b/classentt_1_1meta__type.html index a8632729b..cc1baec07 100644 --- a/classentt_1_1meta__type.html +++ b/classentt_1_1meta__type.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_type Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -97,110 +97,110 @@ using 

    Public Member Functions

    meta_type (node_type *curr=nullptr) noexcept - Constructs an instance from a given node. More...
    -  - meta_type (base_node_type *curr) noexcept - Constructs an instance from a given base node. More...
    -  -type_info info () const noexcept - Returns the type info object of the underlying type. More...
    -  -id_type id () const noexcept - Returns the identifier assigned to a type. More...
    -  -size_type size_of () const noexcept - Returns the size of the underlying type if known. More...
    -  -bool is_void () const noexcept - Checks whether a type refers to void or not. More...
    -  -bool is_integral () const noexcept - Checks whether a type refers to an integral type or not. More...
    -  -bool is_floating_point () const noexcept - Checks whether a type refers to a floating-point type or not. More...
    -  -bool is_array () const noexcept - Checks whether a type refers to an array type or not. More...
    -  -bool is_enum () const noexcept - Checks whether a type refers to an enum or not. More...
    -  -bool is_union () const noexcept - Checks whether a type refers to an union or not. More...
    -  -bool is_class () const noexcept - Checks whether a type refers to a class or not. More...
    -  -bool is_pointer () const noexcept - Checks whether a type refers to a pointer or not. More...
    -  -bool is_function_pointer () const noexcept - Checks whether a type refers to a function pointer or not. More...
    -  -bool is_member_object_pointer () const noexcept - Checks whether a type refers to a pointer to data member or not. More...
    -  -bool is_member_function_pointer () const noexcept - Checks whether a type refers to a pointer to member function or not. More...
    -  -bool is_pointer_like () const noexcept - Checks whether a type is a pointer-like type or not. More...
    -  -bool is_sequence_container () const noexcept - Checks whether a type refers to a sequence container or not. More...
    -  -bool is_associative_container () const noexcept - Checks whether a type refers to an associative container or not. More...
    -  -bool is_template_specialization () const noexcept - Checks whether a type refers to a recognized class template specialization or not. More...
    -  -size_type template_arity () const noexcept - Returns the number of template arguments, if any. More...
    -  -meta_type template_type () const noexcept - Returns a tag for the class template of the underlying type. More...
    -  -meta_type template_arg (size_type index) const noexcept - Returns the type of the i-th template argument of a type. More...
    -  -size_type rank () const noexcept - Provides the number of dimensions of an array type. More...
    -  -size_type extent (size_type dim={}) const noexcept - The number of elements along the given dimension of an array type. More...
    -  -meta_type remove_pointer () const noexcept - Provides the type for which the pointer is defined. More...
    -  -meta_type remove_extent () const noexcept - Provides the type for which the array is defined. More...
    -  -meta_range< meta_type, internal::meta_base_node > base () const noexcept - Returns a range to use to visit top-level base meta types. More...
    -  -meta_type base (const id_type id) const + meta_type (node_type *curr=nullptr) + Constructs an instance from a given node. More...
    +  + meta_type (base_node_type *curr) + Constructs an instance from a given base node. More...
    +  +type_info info () const + Returns the type info object of the underlying type. More...
    +  +id_type id () const + Returns the identifier assigned to a type. More...
    +  +size_type size_of () const + Returns the size of the underlying type if known. More...
    +  +bool is_void () const + Checks whether a type refers to void or not. More...
    +  +bool is_integral () const + Checks whether a type refers to an integral type or not. More...
    +  +bool is_floating_point () const + Checks whether a type refers to a floating-point type or not. More...
    +  +bool is_array () const + Checks whether a type refers to an array type or not. More...
    +  +bool is_enum () const + Checks whether a type refers to an enum or not. More...
    +  +bool is_union () const + Checks whether a type refers to an union or not. More...
    +  +bool is_class () const + Checks whether a type refers to a class or not. More...
    +  +bool is_pointer () const + Checks whether a type refers to a pointer or not. More...
    +  +bool is_function_pointer () const + Checks whether a type refers to a function pointer or not. More...
    +  +bool is_member_object_pointer () const + Checks whether a type refers to a pointer to data member or not. More...
    +  +bool is_member_function_pointer () const + Checks whether a type refers to a pointer to member function or not. More...
    +  +bool is_pointer_like () const + Checks whether a type is a pointer-like type or not. More...
    +  +bool is_sequence_container () const + Checks whether a type refers to a sequence container or not. More...
    +  +bool is_associative_container () const + Checks whether a type refers to an associative container or not. More...
    +  +bool is_template_specialization () const + Checks whether a type refers to a recognized class template specialization or not. More...
    +  +size_type template_arity () const + Returns the number of template arguments, if any. More...
    +  +meta_type template_type () const + Returns a tag for the class template of the underlying type. More...
    +  +meta_type template_arg (size_type index) const + Returns the type of the i-th template argument of a type. More...
    +  +size_type rank () const + Provides the number of dimensions of an array type. More...
    +  +size_type extent (size_type dim={}) const + The number of elements along the given dimension of an array type. More...
    +  +meta_type remove_pointer () const + Provides the type for which the pointer is defined. More...
    +  +meta_type remove_extent () const + Provides the type for which the array is defined. More...
    +  +meta_range< meta_type, internal::meta_base_node > base () const + Returns a range to use to visit top-level base meta types. More...
    +  +meta_type base (const id_type id) const  Returns the base meta type associated with a given identifier. More...
      -meta_range< meta_ctorctor () const noexcept - Returns a range to use to visit top-level constructors. More...
    -  +meta_range< meta_ctorctor () const + Returns a range to use to visit top-level constructors. More...
    +  template<typename... Args> meta_ctor ctor () const  Returns a constructor for a given list of types of arguments. More...
      -meta_range< meta_datadata () const noexcept - Returns a range to use to visit top-level data. More...
    -  -meta_data data (const id_type id) const +meta_range< meta_datadata () const + Returns a range to use to visit top-level data. More...
    +  +meta_data data (const id_type id) const  Returns the data associated with a given identifier. More...
      -meta_range< meta_funcfunc () const noexcept - Returns a range to use to visit top-level functions. More...
    -  -meta_func func (const id_type id) const +meta_range< meta_funcfunc () const + Returns a range to use to visit top-level functions. More...
    +  +meta_func func (const id_type id) const  Returns the function associated with a given identifier. More...
      meta_any construct (meta_any *const args, const size_type sz) const @@ -210,43 +210,43 @@ Public Member Functions meta_any construct (Args &&... args) const  Creates an instance of the underlying type, if possible. More...
      -meta_any invoke (const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const +meta_any invoke (const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const  Invokes a function given an identifier, if possible. More...
      template<typename... Args> -meta_any invoke (const id_type id, meta_handle instance, Args &&... args) const +meta_any invoke (const id_type id, meta_handle instance, Args &&... args) const  Invokes a function given an identifier, if possible. More...
      template<typename Type > -bool set (const id_type id, meta_handle instance, Type &&value) const +bool set (const id_type id, meta_handle instance, Type &&value) const  Sets the value of a given variable. More...
      -meta_any get (const id_type id, meta_handle instance) const +meta_any get (const id_type id, meta_handle instance) const  Gets the value of a given variable. More...
      -meta_range< meta_propprop () const noexcept - Returns a range to use to visit top-level properties. More...
    -  +meta_range< meta_propprop () const + Returns a range to use to visit top-level properties. More...
    meta_prop prop (meta_any key) const  Returns the property associated with a given key. More...
      - operator bool () const noexcept - Returns true if an object is valid, false otherwise. More...
    -  -bool operator== (const meta_type &other) const noexcept - Checks if two objects refer to the same type. More...
    -  -void reset () noexcept - Resets a type and all its parts. More...
    -  + operator bool () const + Returns true if an object is valid, false otherwise. More...
    +  +bool operator== (const meta_type &other) const + Checks if two objects refer to the same type. More...
    +  +void reset () + Resets a type and all its parts. More...

    Detailed Description

    Opaque wrapper for types.

    -

    Definition at line 1003 of file meta.hpp.

    +

    Definition at line 1040 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_type() [1/2]

    + +

    ◆ meta_type() [1/2]

    @@ -264,7 +264,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -277,12 +277,12 @@ Public Member Functions -

    Definition at line 1044 of file meta.hpp.

    +

    Definition at line 1089 of file meta.hpp.

    - -

    ◆ meta_type() [2/2]

    + +

    ◆ meta_type() [2/2]

    @@ -300,7 +300,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -313,13 +313,13 @@ Public Member Functions -

    Definition at line 1052 of file meta.hpp.

    +

    Definition at line 1097 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ base() [1/2]

    + +

    ◆ base() [1/2]

    @@ -336,7 +336,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -344,7 +344,7 @@ Public Member Functions

    Returns a range to use to visit top-level base meta types.

    Returns
    An iterable range to use to visit top-level base meta types.
    -

    Definition at line 1276 of file meta.hpp.

    +

    Definition at line 1321 of file meta.hpp.

    @@ -381,7 +381,7 @@ Public Member Functions
    Returns
    The base meta type associated with the given identifier, if any.
    -

    Definition at line 1285 of file meta.hpp.

    +

    Definition at line 1330 of file meta.hpp.

    @@ -425,9 +425,9 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 1375 of file meta.hpp.

    +

    Definition at line 1420 of file meta.hpp.

    @@ -474,14 +474,44 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 1359 of file meta.hpp.

    +

    Definition at line 1404 of file meta.hpp.

    + + + + +

    ◆ ctor() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    meta_range<meta_ctor> entt::meta_type::ctor () const
    +
    +inline
    +
    + +

    Returns a range to use to visit top-level constructors.

    +
    Returns
    An iterable range to use to visit top-level constructors.
    + +

    Definition at line 1338 of file meta.hpp.

    -

    ◆ ctor() [1/2]

    +

    ◆ ctor() [2/2]

    @@ -514,42 +544,12 @@ template<typename... Args>
    Returns
    The requested constructor, if any.
    -

    Definition at line 1303 of file meta.hpp.

    +

    Definition at line 1348 of file meta.hpp.

    - -

    ◆ ctor() [2/2]

    - -
    -
    - - - - - -
    - - - - - - - -
    meta_range<meta_ctor> entt::meta_type::ctor () const
    -
    -inlinenoexcept
    -
    - -

    Returns a range to use to visit top-level constructors.

    -
    Returns
    An iterable range to use to visit top-level constructors.
    - -

    Definition at line 1293 of file meta.hpp.

    - -
    -
    - -

    ◆ data() [1/2]

    + +

    ◆ data() [1/2]

    @@ -566,7 +566,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -574,7 +574,7 @@ template<typename... Args>

    Returns a range to use to visit top-level data.

    Returns
    An iterable range to use to visit top-level data.
    -

    Definition at line 1311 of file meta.hpp.

    +

    Definition at line 1356 of file meta.hpp.

    @@ -612,12 +612,12 @@ template<typename... Args>
    Returns
    The data associated with the given identifier, if any.
    -

    Definition at line 1323 of file meta.hpp.

    +

    Definition at line 1368 of file meta.hpp.

    - -

    ◆ extent()

    + +

    ◆ extent()

    @@ -635,7 +635,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -649,12 +649,12 @@ template<typename... Args>
    Returns
    The number of elements along the given dimension in case of array types, 0 otherwise.
    -

    Definition at line 1250 of file meta.hpp.

    +

    Definition at line 1295 of file meta.hpp.

    - -

    ◆ func() [1/2]

    + +

    ◆ func() [1/2]

    @@ -671,7 +671,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -679,7 +679,7 @@ template<typename... Args>

    Returns a range to use to visit top-level functions.

    Returns
    An iterable range to use to visit top-level functions.
    -

    Definition at line 1331 of file meta.hpp.

    +

    Definition at line 1376 of file meta.hpp.

    @@ -718,7 +718,7 @@ template<typename... Args>
    Returns
    The function associated with the given identifier, if any.
    -

    Definition at line 1345 of file meta.hpp.

    +

    Definition at line 1390 of file meta.hpp.

    @@ -765,14 +765,14 @@ template<typename... Args> -
    Returns
    A meta any containing the value of the underlying variable.
    +
    Returns
    A wrapper containing the value of the underlying variable.
    -

    Definition at line 1472 of file meta.hpp.

    +

    Definition at line 1517 of file meta.hpp.

    - -

    ◆ id()

    + +

    ◆ id()

    @@ -789,7 +789,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -797,12 +797,12 @@ template<typename... Args>

    Returns the identifier assigned to a type.

    Returns
    The identifier assigned to the type.
    -

    Definition at line 1068 of file meta.hpp.

    +

    Definition at line 1113 of file meta.hpp.

    - -

    ◆ info()

    + +

    ◆ info()

    @@ -819,7 +819,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -827,7 +827,7 @@ template<typename... Args>

    Returns the type info object of the underlying type.

    Returns
    The type info object of the underlying type.
    -

    Definition at line 1060 of file meta.hpp.

    +

    Definition at line 1105 of file meta.hpp.

    @@ -894,9 +894,9 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 1436 of file meta.hpp.

    +

    Definition at line 1481 of file meta.hpp.

    @@ -958,14 +958,14 @@ template<typename... Args> -
    Returns
    A meta any containing the returned value, if any.
    +
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 1395 of file meta.hpp.

    +

    Definition at line 1440 of file meta.hpp.

    - -

    ◆ is_array()

    + +

    ◆ is_array()

    @@ -982,7 +982,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -990,12 +990,12 @@ template<typename... Args>

    Checks whether a type refers to an array type or not.

    Returns
    True if the underlying type is an array type, false otherwise.
    -

    Definition at line 1109 of file meta.hpp.

    +

    Definition at line 1154 of file meta.hpp.

    - -

    ◆ is_associative_container()

    + +

    ◆ is_associative_container()

    @@ -1012,7 +1012,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1020,12 +1020,12 @@ template<typename... Args>

    Checks whether a type refers to an associative container or not.

    Returns
    True if the type is an associative container, false otherwise.
    -

    Definition at line 1194 of file meta.hpp.

    +

    Definition at line 1239 of file meta.hpp.

    - -

    ◆ is_class()

    + +

    ◆ is_class()

    @@ -1042,7 +1042,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1050,12 +1050,12 @@ template<typename... Args>

    Checks whether a type refers to a class or not.

    Returns
    True if the underlying type is a class, false otherwise.
    -

    Definition at line 1133 of file meta.hpp.

    +

    Definition at line 1178 of file meta.hpp.

    - -

    ◆ is_enum()

    + +

    ◆ is_enum()

    @@ -1072,7 +1072,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1080,12 +1080,12 @@ template<typename... Args>

    Checks whether a type refers to an enum or not.

    Returns
    True if the underlying type is an enum, false otherwise.
    -

    Definition at line 1117 of file meta.hpp.

    +

    Definition at line 1162 of file meta.hpp.

    - -

    ◆ is_floating_point()

    + +

    ◆ is_floating_point()

    @@ -1102,7 +1102,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1110,12 +1110,12 @@ template<typename... Args>

    Checks whether a type refers to a floating-point type or not.

    Returns
    True if the underlying type is a floating-point type, false otherwise.
    -

    Definition at line 1101 of file meta.hpp.

    +

    Definition at line 1146 of file meta.hpp.

    - -

    ◆ is_function_pointer()

    + +

    ◆ is_function_pointer()

    @@ -1132,7 +1132,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1140,12 +1140,12 @@ template<typename... Args>

    Checks whether a type refers to a function pointer or not.

    Returns
    True if the underlying type is a function pointer, false otherwise.
    -

    Definition at line 1150 of file meta.hpp.

    +

    Definition at line 1195 of file meta.hpp.

    - -

    ◆ is_integral()

    + +

    ◆ is_integral()

    @@ -1162,7 +1162,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1170,12 +1170,12 @@ template<typename... Args>

    Checks whether a type refers to an integral type or not.

    Returns
    True if the underlying type is an integral type, false otherwise.
    -

    Definition at line 1092 of file meta.hpp.

    +

    Definition at line 1137 of file meta.hpp.

    - -

    ◆ is_member_function_pointer()

    + +

    ◆ is_member_function_pointer()

    @@ -1192,7 +1192,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1200,12 +1200,12 @@ template<typename... Args>

    Checks whether a type refers to a pointer to member function or not.

    Returns
    True if the underlying type is a pointer to member function, false otherwise.
    -

    Definition at line 1169 of file meta.hpp.

    +

    Definition at line 1214 of file meta.hpp.

    - -

    ◆ is_member_object_pointer()

    + +

    ◆ is_member_object_pointer()

    @@ -1222,7 +1222,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1230,12 +1230,12 @@ template<typename... Args>

    Checks whether a type refers to a pointer to data member or not.

    Returns
    True if the underlying type is a pointer to data member, false otherwise.
    -

    Definition at line 1159 of file meta.hpp.

    +

    Definition at line 1204 of file meta.hpp.

    - -

    ◆ is_pointer()

    + +

    ◆ is_pointer()

    @@ -1252,7 +1252,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1260,12 +1260,12 @@ template<typename... Args>

    Checks whether a type refers to a pointer or not.

    Returns
    True if the underlying type is a pointer, false otherwise.
    -

    Definition at line 1141 of file meta.hpp.

    +

    Definition at line 1186 of file meta.hpp.

    - -

    ◆ is_pointer_like()

    + +

    ◆ is_pointer_like()

    @@ -1282,7 +1282,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1290,12 +1290,12 @@ template<typename... Args>

    Checks whether a type is a pointer-like type or not.

    Returns
    True if the underlying type is a pointer-like one, false otherwise.
    -

    Definition at line 1178 of file meta.hpp.

    +

    Definition at line 1223 of file meta.hpp.

    - -

    ◆ is_sequence_container()

    + +

    ◆ is_sequence_container()

    @@ -1312,7 +1312,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1320,12 +1320,12 @@ template<typename... Args>

    Checks whether a type refers to a sequence container or not.

    Returns
    True if the type is a sequence container, false otherwise.
    -

    Definition at line 1186 of file meta.hpp.

    +

    Definition at line 1231 of file meta.hpp.

    - -

    ◆ is_template_specialization()

    + +

    ◆ is_template_specialization()

    @@ -1342,7 +1342,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1350,12 +1350,12 @@ template<typename... Args>

    Checks whether a type refers to a recognized class template specialization or not.

    Returns
    True if the type is a recognized class template specialization, false otherwise.
    -

    Definition at line 1204 of file meta.hpp.

    +

    Definition at line 1249 of file meta.hpp.

    - -

    ◆ is_union()

    + +

    ◆ is_union()

    @@ -1372,7 +1372,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1380,12 +1380,12 @@ template<typename... Args>

    Checks whether a type refers to an union or not.

    Returns
    True if the underlying type is an union, false otherwise.
    -

    Definition at line 1125 of file meta.hpp.

    +

    Definition at line 1170 of file meta.hpp.

    - -

    ◆ is_void()

    + +

    ◆ is_void()

    @@ -1402,7 +1402,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1410,12 +1410,12 @@ template<typename... Args>

    Checks whether a type refers to void or not.

    Returns
    True if the underlying type is void, false otherwise.
    -

    Definition at line 1084 of file meta.hpp.

    +

    Definition at line 1129 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -1432,7 +1432,7 @@ template<typename... Args>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -1440,12 +1440,12 @@ template<typename... Args>

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 1501 of file meta.hpp.

    +

    Definition at line 1546 of file meta.hpp.

    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -1463,7 +1463,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1477,12 +1477,12 @@ template<typename... Args>
    Returns
    True if the objects refer to the same type, false otherwise.
    -

    Definition at line 1510 of file meta.hpp.

    +

    Definition at line 1555 of file meta.hpp.

    - -

    ◆ prop() [1/2]

    + +

    ◆ prop() [1/2]

    @@ -1499,7 +1499,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1507,7 +1507,7 @@ template<typename... Args>

    Returns a range to use to visit top-level properties.

    Returns
    An iterable range to use to visit top-level properties.
    -

    Definition at line 1481 of file meta.hpp.

    +

    Definition at line 1526 of file meta.hpp.

    @@ -1545,12 +1545,12 @@ template<typename... Args>
    Returns
    The property associated with the given key, if any.
    -

    Definition at line 1493 of file meta.hpp.

    +

    Definition at line 1538 of file meta.hpp.

    - -

    ◆ rank()

    + +

    ◆ rank()

    @@ -1567,7 +1567,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1575,12 +1575,12 @@ template<typename... Args>

    Provides the number of dimensions of an array type.

    Returns
    The number of dimensions in case of array types, 0 otherwise.
    -

    Definition at line 1240 of file meta.hpp.

    +

    Definition at line 1285 of file meta.hpp.

    - -

    ◆ remove_extent()

    + +

    ◆ remove_extent()

    @@ -1597,7 +1597,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1605,12 +1605,12 @@ template<typename... Args>

    Provides the type for which the array is defined.

    Returns
    The type for which the array is defined or this type if it doesn't refer to an array type.
    -

    Definition at line 1268 of file meta.hpp.

    +

    Definition at line 1313 of file meta.hpp.

    - -

    ◆ remove_pointer()

    + +

    ◆ remove_pointer()

    @@ -1627,7 +1627,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1635,12 +1635,12 @@ template<typename... Args>

    Provides the type for which the pointer is defined.

    Returns
    The type for which the pointer is defined or this type if it doesn't refer to a pointer type.
    -

    Definition at line 1259 of file meta.hpp.

    +

    Definition at line 1304 of file meta.hpp.

    - -

    ◆ reset()

    + +

    ◆ reset()

    @@ -1657,7 +1657,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -1667,7 +1667,7 @@ template<typename... Args>
    Base classes aren't reset but the link between the two types is removed.

    The type is also removed from the list of searchable types.

    -

    Definition at line 1524 of file meta.hpp.

    +

    Definition at line 1569 of file meta.hpp.

    @@ -1732,12 +1732,12 @@ template<typename Type >
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 1457 of file meta.hpp.

    +

    Definition at line 1502 of file meta.hpp.

    - -

    ◆ size_of()

    + +

    ◆ size_of()

    @@ -1754,7 +1754,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -1762,12 +1762,12 @@ template<typename Type >

    Returns the size of the underlying type if known.

    Returns
    The size of the underlying type if known, 0 otherwise.
    -

    Definition at line 1076 of file meta.hpp.

    +

    Definition at line 1121 of file meta.hpp.

    - -

    ◆ template_arg()

    + +

    ◆ template_arg()

    @@ -1785,7 +1785,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -1799,12 +1799,12 @@ template<typename Type >
    Returns
    The type of the i-th template argument of a type.
    -

    Definition at line 1232 of file meta.hpp.

    +

    Definition at line 1277 of file meta.hpp.

    - -

    ◆ template_arity()

    + +

    ◆ template_arity()

    @@ -1821,7 +1821,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -1829,12 +1829,12 @@ template<typename Type >

    Returns the number of template arguments, if any.

    Returns
    The number of template arguments, if any.
    -

    Definition at line 1212 of file meta.hpp.

    +

    Definition at line 1257 of file meta.hpp.

    - -

    ◆ template_type()

    + +

    ◆ template_type()

    @@ -1851,7 +1851,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -1860,7 +1860,7 @@ template<typename Type >
    See also
    meta_class_template_tag
    Returns
    The tag for the class template of the underlying type.
    -

    Definition at line 1223 of file meta.hpp.

    +

    Definition at line 1268 of file meta.hpp.

    @@ -1870,7 +1870,7 @@ template<typename Type > diff --git a/classentt_1_1poly__vtable-members.html b/classentt_1_1poly__vtable-members.html index c023d95d8..0836ea592 100644 --- a/classentt_1_1poly__vtable-members.html +++ b/classentt_1_1poly__vtable-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/classentt_1_1poly__vtable.html b/classentt_1_1poly__vtable.html index 0f40acca6..6ffc0beef 100644 --- a/classentt_1_1poly__vtable.html +++ b/classentt_1_1poly__vtable.html @@ -3,7 +3,7 @@ - + EnTT: entt::poly_vtable< Concept, Len, Align > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -156,7 +156,7 @@ template<typename Type > diff --git a/classentt_1_1process-members.html b/classentt_1_1process-members.html index 247c785be..423318fec 100644 --- a/classentt_1_1process-members.html +++ b/classentt_1_1process-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,21 +74,21 @@ $(function() {

    This is the complete list of members for entt::process< Derived, Delta >, including all inherited members.

    - - - - - - - - + + + + + + + + - +
    abort(const bool immediately=false)entt::process< Derived, Delta >inline
    alive() const noexceptentt::process< Derived, Delta >inline
    dead() const noexceptentt::process< Derived, Delta >inline
    delta_type typedefentt::process< Derived, Delta >
    fail() noexceptentt::process< Derived, Delta >inlineprotected
    pause() noexceptentt::process< Derived, Delta >inlineprotected
    paused() const noexceptentt::process< Derived, Delta >inline
    rejected() const noexceptentt::process< Derived, Delta >inline
    succeed() noexceptentt::process< Derived, Delta >inlineprotected
    alive() constentt::process< Derived, Delta >inline
    delta_type typedefentt::process< Derived, Delta >
    fail()entt::process< Derived, Delta >inlineprotected
    finished() constentt::process< Derived, Delta >inline
    pause()entt::process< Derived, Delta >inlineprotected
    paused() constentt::process< Derived, Delta >inline
    rejected() constentt::process< Derived, Delta >inline
    succeed()entt::process< Derived, Delta >inlineprotected
    tick(const Delta delta, void *data=nullptr)entt::process< Derived, Delta >inline
    unpause() noexceptentt::process< Derived, Delta >inlineprotected
    unpause()entt::process< Derived, Delta >inlineprotected
    ~process()entt::process< Derived, Delta >inlinevirtual
    diff --git a/classentt_1_1process.html b/classentt_1_1process.html index c1b5a0a4e..1f3843b31 100644 --- a/classentt_1_1process.html +++ b/classentt_1_1process.html @@ -3,7 +3,7 @@ - + EnTT: entt::process< Derived, Delta > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -97,36 +97,36 @@ virtual void abort (const bool immediately=false)  Aborts a process if it's still alive. More...
      -bool alive () const noexcept - Returns true if a process is either running or paused. More...
    -  -bool dead () const noexcept - Returns true if a process is already terminated. More...
    -  -bool paused () const noexcept - Returns true if a process is currently paused. More...
    -  -bool rejected () const noexcept - Returns true if a process terminated with errors. More...
    -  +bool alive () const + Returns true if a process is either running or paused. More...
    +  +bool finished () const + Returns true if a process is already terminated. More...
    +  +bool paused () const + Returns true if a process is currently paused. More...
    +  +bool rejected () const + Returns true if a process terminated with errors. More...
    +  void tick (const Delta delta, void *data=nullptr)  Updates a process and its internal state if required. More...
      - - - - - - - - - - - - + + + + + + + + + + + +

    Protected Member Functions

    void succeed () noexcept
     Terminates a process with success if it's still alive. More...
     
    void fail () noexcept
     Terminates a process with errors if it's still alive. More...
     
    void pause () noexcept
     Stops a process if it's in a running state. More...
     
    void unpause () noexcept
     Restarts a process if it's paused. More...
     
    void succeed ()
     Terminates a process with success if it's still alive. More...
     
    void fail ()
     Terminates a process with errors if it's still alive. More...
     
    void pause ()
     Stops a process if it's in a running state. More...
     
    void unpause ()
     Restarts a process if it's paused. More...
     

    Detailed Description

    template<typename Derived, typename Delta>
    @@ -203,8 +203,8 @@ template<typename Derived , typename Delta >

    - -

    ◆ alive()

    + +

    ◆ alive()

    @@ -223,7 +223,7 @@ template<typename Derived , typename Delta >
    -inlinenoexcept +inline
    @@ -235,40 +235,8 @@ template<typename Derived , typename Delta >
    - -

    ◆ dead()

    - -
    -
    -
    -template<typename Derived , typename Delta >
    - - - - - -
    - - - - - - - -
    bool entt::process< Derived, Delta >::dead () const
    -
    -inlinenoexcept
    -
    - -

    Returns true if a process is already terminated.

    -
    Returns
    True if the process is terminated, false otherwise.
    - -

    Definition at line 205 of file process.hpp.

    - -
    -
    - -

    ◆ fail()

    + +

    ◆ fail()

    @@ -287,7 +255,7 @@ template<typename Derived , typename Delta >
    -inlineprotectednoexcept +inlineprotected
    @@ -299,8 +267,40 @@ template<typename Derived , typename Delta >
    - -

    ◆ pause()

    + +

    ◆ finished()

    + +
    +
    +
    +template<typename Derived , typename Delta >
    + + + + + +
    + + + + + + + +
    bool entt::process< Derived, Delta >::finished () const
    +
    +inline
    +
    + +

    Returns true if a process is already terminated.

    +
    Returns
    True if the process is terminated, false otherwise.
    + +

    Definition at line 205 of file process.hpp.

    + +
    +
    + +

    ◆ pause()

    @@ -319,7 +319,7 @@ template<typename Derived , typename Delta >
    -inlineprotectednoexcept +inlineprotected
    @@ -331,8 +331,8 @@ template<typename Derived , typename Delta >
    - -

    ◆ paused()

    + +

    ◆ paused()

    @@ -351,7 +351,7 @@ template<typename Derived , typename Delta >
    -inlinenoexcept +inline
    @@ -363,8 +363,8 @@ template<typename Derived , typename Delta >
    - -

    ◆ rejected()

    + +

    ◆ rejected()

    @@ -383,7 +383,7 @@ template<typename Derived , typename Delta >
    -inlinenoexcept +inline
    @@ -395,8 +395,8 @@ template<typename Derived , typename Delta >
    - -

    ◆ succeed()

    + +

    ◆ succeed()

    @@ -415,7 +415,7 @@ template<typename Derived , typename Delta >
    -inlineprotectednoexcept +inlineprotected
    @@ -476,8 +476,8 @@ template<typename Derived , typename Delta >
    - -

    ◆ unpause()

    + +

    ◆ unpause()

    @@ -496,7 +496,7 @@ template<typename Derived , typename Delta >
    -inlineprotectednoexcept +inlineprotected
    @@ -514,7 +514,7 @@ template<typename Derived , typename Delta >
    diff --git a/classentt_1_1resource__handle-members.html b/classentt_1_1resource__handle-members.html new file mode 100644 index 000000000..16ee957b5 --- /dev/null +++ b/classentt_1_1resource__handle-members.html @@ -0,0 +1,102 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::resource_handle< Resource > Member List
    +
    +
    + +

    This is the complete list of members for entt::resource_handle< Resource >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + +
    get() constentt::resource_handle< Resource >inline
    get()entt::resource_handle< Resource >inline
    operator bool() constentt::resource_handle< Resource >inlineexplicit
    operator const Resource &() constentt::resource_handle< Resource >inline
    operator Resource &()entt::resource_handle< Resource >inline
    operator*() constentt::resource_handle< Resource >inline
    operator*()entt::resource_handle< Resource >inline
    operator->() constentt::resource_handle< Resource >inline
    operator->()entt::resource_handle< Resource >inline
    operator=(const resource_handle< Resource > &other)=defaultentt::resource_handle< Resource >
    operator=(resource_handle< Resource > &&other)=defaultentt::resource_handle< Resource >
    operator=(const resource_handle< Other > &other)entt::resource_handle< Resource >inline
    operator=(resource_handle< Other > &&other)entt::resource_handle< Resource >inline
    resource_handle classentt::resource_handle< Resource >friend
    resource_handle()=defaultentt::resource_handle< Resource >
    resource_handle(std::shared_ptr< Resource > res)entt::resource_handle< Resource >inline
    resource_handle(const resource_handle< Resource > &other)=defaultentt::resource_handle< Resource >
    resource_handle(resource_handle< Resource > &&other)=defaultentt::resource_handle< Resource >
    resource_handle(const resource_handle< Other > &other)entt::resource_handle< Resource >inline
    resource_handle(resource_handle< Other > &&other)entt::resource_handle< Resource >inline
    + + + + diff --git a/classentt_1_1resource__handle.html b/classentt_1_1resource__handle.html new file mode 100644 index 000000000..ff4a74367 --- /dev/null +++ b/classentt_1_1resource__handle.html @@ -0,0 +1,849 @@ + + + + + + + +EnTT: entt::resource_handle< Resource > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Member Functions | +Friends | +List of all members
    +
    +
    entt::resource_handle< Resource > Class Template Reference
    +
    +
    + +

    Shared resource handle. + More...

    + +

    #include <handle.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    resource_handle ()=default
     Default constructor.
     
     resource_handle (std::shared_ptr< Resource > res)
     Creates a handle from a shared pointer, namely a resource. More...
     
     resource_handle (const resource_handle< Resource > &other)=default
     Copy constructor. More...
     
     resource_handle (resource_handle< Resource > &&other)=default
     Move constructor. More...
     
    template<typename Other , typename = std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>>>
     resource_handle (const resource_handle< Other > &other)
     Copy constructs a handle which shares ownership of the resource. More...
     
    template<typename Other , typename = std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>>>
     resource_handle (resource_handle< Other > &&other)
     Move constructs a handle which takes ownership of the resource. More...
     
    resource_handleoperator= (const resource_handle< Resource > &other)=default
     Copy assignment operator. More...
     
    resource_handleoperator= (resource_handle< Resource > &&other)=default
     Move assignment operator. More...
     
    template<typename Other >
    std::enable_if_t<!std::is_same_v< Other, Resource > &&std::is_base_of_v< Resource, Other >, resource_handle & > operator= (const resource_handle< Other > &other)
     Copy assignment operator from foreign handle. More...
     
    template<typename Other >
    std::enable_if_t<!std::is_same_v< Other, Resource > &&std::is_base_of_v< Resource, Other >, resource_handle & > operator= (resource_handle< Other > &&other)
     Move assignment operator from foreign handle. More...
     
    const Resource & get () const
     Gets a reference to the managed resource. More...
     
    Resource & get ()
     Gets a reference to the managed resource. More...
     
     operator const Resource & () const
     Gets a reference to the managed resource. More...
     
     operator Resource & ()
     Gets a reference to the managed resource. More...
     
    const Resource & operator* () const
     Gets a reference to the managed resource. More...
     
    Resource & operator* ()
     Gets a reference to the managed resource. More...
     
    const Resource * operator-> () const
     Gets a pointer to the managed resource. More...
     
    Resource * operator-> ()
     Gets a pointer to the managed resource. More...
     
     operator bool () const
     Returns true if a handle contains a resource, false otherwise. More...
     
    + + + + + +

    +Friends

    +template<typename >
    class resource_handle
     Resource handles are friends with each other.
     
    +

    Detailed Description

    +

    template<typename Resource>
    +class entt::resource_handle< Resource >

    + +

    Shared resource handle.

    +

    A shared resource handle is a small class that wraps a resource and keeps it alive even if it's deleted from the cache. It can be either copied or moved. A handle shares a reference to the same resource with all the other handles constructed for the same identifier.
    + As a rule of thumb, resources should never be copied nor moved. Handles are the way to go to keep references to them.

    +
    Template Parameters
    + + +
    ResourceType of resource managed by a handle.
    +
    +
    + +

    Definition at line 28 of file handle.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ resource_handle() [1/5]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + + +
    entt::resource_handle< Resource >::resource_handle (std::shared_ptr< Resource > res)
    +
    +inline
    +
    + +

    Creates a handle from a shared pointer, namely a resource.

    +
    Parameters
    + + +
    resA pointer to a properly initialized resource.
    +
    +
    + +

    Definition at line 41 of file handle.hpp.

    + +
    +
    + +

    ◆ resource_handle() [2/5]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + + +
    entt::resource_handle< Resource >::resource_handle (const resource_handle< Resource > & other)
    +
    +default
    +
    + +

    Copy constructor.

    +
    Parameters
    + + +
    otherThe instance to copy from.
    +
    +
    + +
    +
    + +

    ◆ resource_handle() [3/5]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + + +
    entt::resource_handle< Resource >::resource_handle (resource_handle< Resource > && other)
    +
    +default
    +
    + +

    Move constructor.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    + +
    +
    + +

    ◆ resource_handle() [4/5]

    + +
    +
    +
    +template<typename Resource >
    +
    +template<typename Other , typename = std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>>>
    + + + + + +
    + + + + + + + + +
    entt::resource_handle< Resource >::resource_handle (const resource_handle< Other > & other)
    +
    +inline
    +
    + +

    Copy constructs a handle which shares ownership of the resource.

    +
    Template Parameters
    + + +
    OtherType of resource managed by the received handle.
    +
    +
    +
    Parameters
    + + +
    otherThe handle to copy from.
    +
    +
    + +

    Definition at line 63 of file handle.hpp.

    + +
    +
    + +

    ◆ resource_handle() [5/5]

    + +
    +
    +
    +template<typename Resource >
    +
    +template<typename Other , typename = std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>>>
    + + + + + +
    + + + + + + + + +
    entt::resource_handle< Resource >::resource_handle (resource_handle< Other > && other)
    +
    +inline
    +
    + +

    Move constructs a handle which takes ownership of the resource.

    +
    Template Parameters
    + + +
    OtherType of resource managed by the received handle.
    +
    +
    +
    Parameters
    + + +
    otherThe handle to move from.
    +
    +
    + +

    Definition at line 73 of file handle.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get() [1/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    Resource& entt::resource_handle< Resource >::get ()
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 131 of file handle.hpp.

    + +
    +
    + +

    ◆ get() [2/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    const Resource& entt::resource_handle< Resource >::get () const
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 125 of file handle.hpp.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    entt::resource_handle< Resource >::operator bool () const
    +
    +inlineexplicit
    +
    + +

    Returns true if a handle contains a resource, false otherwise.

    +
    Returns
    True if the handle contains a resource, false otherwise.
    + +

    Definition at line 177 of file handle.hpp.

    + +
    +
    + +

    ◆ operator const Resource &()

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    entt::resource_handle< Resource >::operator const Resource & () const
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 136 of file handle.hpp.

    + +
    +
    + +

    ◆ operator Resource &()

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    entt::resource_handle< Resource >::operator Resource & ()
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 141 of file handle.hpp.

    + +
    +
    + +

    ◆ operator*() [1/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    Resource& entt::resource_handle< Resource >::operator* ()
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 151 of file handle.hpp.

    + +
    +
    + +

    ◆ operator*() [2/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    const Resource& entt::resource_handle< Resource >::operator* () const
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 146 of file handle.hpp.

    + +
    +
    + +

    ◆ operator->() [1/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    Resource* entt::resource_handle< Resource >::operator-> ()
    +
    +inline
    +
    + +

    Gets a pointer to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A pointer to the managed resource or nullptr if the handle contains no resource at all.
    + +

    Definition at line 169 of file handle.hpp.

    + +
    +
    + +

    ◆ operator->() [2/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    const Resource* entt::resource_handle< Resource >::operator-> () const
    +
    +inline
    +
    + +

    Gets a pointer to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A pointer to the managed resource or nullptr if the handle contains no resource at all.
    + +

    Definition at line 164 of file handle.hpp.

    + +
    +
    + +

    ◆ operator=() [1/4]

    + +
    +
    +
    +template<typename Resource >
    +
    +template<typename Other >
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>, resource_handle &> entt::resource_handle< Resource >::operator= (const resource_handle< Other > & other)
    +
    +inline
    +
    + +

    Copy assignment operator from foreign handle.

    +
    Template Parameters
    + + +
    OtherType of resource managed by the received handle.
    +
    +
    +
    Parameters
    + + +
    otherThe handle to copy from.
    +
    +
    +
    Returns
    This resource handle.
    + +

    Definition at line 99 of file handle.hpp.

    + +
    +
    + +

    ◆ operator=() [2/4]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + + +
    resource_handle& entt::resource_handle< Resource >::operator= (const resource_handle< Resource > & other)
    +
    +default
    +
    + +

    Copy assignment operator.

    +
    Parameters
    + + +
    otherThe instance to copy from.
    +
    +
    +
    Returns
    This resource handle.
    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<typename Resource >
    +
    +template<typename Other >
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!std::is_same_v<Other, Resource> && std::is_base_of_v<Resource, Other>, resource_handle &> entt::resource_handle< Resource >::operator= (resource_handle< Other > && other)
    +
    +inline
    +
    + +

    Move assignment operator from foreign handle.

    +
    Template Parameters
    + + +
    OtherType of resource managed by the received handle.
    +
    +
    +
    Parameters
    + + +
    otherThe handle to move from.
    +
    +
    +
    Returns
    This resource handle.
    + +

    Definition at line 112 of file handle.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + + +
    resource_handle& entt::resource_handle< Resource >::operator= (resource_handle< Resource > && other)
    +
    +default
    +
    + +

    Move assignment operator.

    +
    Parameters
    + + +
    otherThe instance to move from.
    +
    +
    +
    Returns
    This resource handle.
    + +
    +
    +
    The documentation for this class was generated from the following files: +
    + + + + diff --git a/classentt_1_1resource__loader-members.html b/classentt_1_1resource__loader-members.html index c3f9e538e..a6a46f8aa 100644 --- a/classentt_1_1resource__loader-members.html +++ b/classentt_1_1resource__loader-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,11 +73,11 @@ $(function() {

    This is the complete list of members for entt::resource_loader< Loader, Resource >, including all inherited members.

    - +
    resource_cache< Resource >entt::resource_loader< Loader, Resource >friend
    resource_cacheentt::resource_loader< Loader, Resource >friend
    diff --git a/classentt_1_1resource__loader.html b/classentt_1_1resource__loader.html index ab19376c6..d7621cf2c 100644 --- a/classentt_1_1resource__loader.html +++ b/classentt_1_1resource__loader.html @@ -3,7 +3,7 @@ - + EnTT: entt::resource_loader< Loader, Resource > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,10 +81,11 @@ $(function() { - - - + + + +

    Friends

    -struct resource_cache< Resource >
     Resource loaders are friends of their caches.
     
    +template<typename Other >
    struct resource_cache
     Resource loaders are friends of their caches.
     

    Detailed Description

    template<typename Loader, typename Resource>
    @@ -101,6 +102,7 @@ class entt::resource_loader< Loader, Resource >

    return std::make_shared<my_resource>();
    }
    };
    +
    Base class for resource loaders.
    Definition: loader.hpp:45

    In general, resource loaders should not have a state or retain data of any type. They should let the cache manage their resources instead.

    Note
    Base class and CRTP idiom aren't strictly required with the current implementation. One could argue that a cache can easily work with loaders of any type. However, future changes won't be breaking ones by forcing the use of a base class today and that's why the model is already in its place.
    Template Parameters
    @@ -117,10 +119,9 @@ class entt::resource_loader< Loader, Resource >
  • src/entt/resource/loader.hpp
  • -
    Base class for resource loaders.
    Definition: loader.hpp:45
    diff --git a/classentt_1_1scheduler-members.html b/classentt_1_1scheduler-members.html index 3706f2736..18a00f280 100644 --- a/classentt_1_1scheduler-members.html +++ b/classentt_1_1scheduler-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,17 +77,17 @@ $(function() { attach(Args &&... args)entt::scheduler< Delta >inline attach(Func &&func)entt::scheduler< Delta >inline clear()entt::scheduler< Delta >inline - empty() const noexceptentt::scheduler< Delta >inline + empty() constentt::scheduler< Delta >inline operator=(scheduler &&)=defaultentt::scheduler< Delta > scheduler()=defaultentt::scheduler< Delta > scheduler(scheduler &&)=defaultentt::scheduler< Delta > - size() const noexceptentt::scheduler< Delta >inline + size() constentt::scheduler< Delta >inline size_type typedefentt::scheduler< Delta > update(const Delta delta, void *data=nullptr)entt::scheduler< Delta >inline diff --git a/classentt_1_1scheduler.html b/classentt_1_1scheduler.html index 6c47a0737..fa59ba12d 100644 --- a/classentt_1_1scheduler.html +++ b/classentt_1_1scheduler.html @@ -3,7 +3,7 @@ - + EnTT: entt::scheduler< Delta > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -101,12 +101,12 @@ Public Member Functions scheduleroperator= (scheduler &&)=default  Default move assignment operator. More...
      -size_type size () const noexcept - Number of processes currently scheduled. More...
    -  -bool empty () const noexcept - Returns true if at least a process is currently scheduled. More...
    -  +size_type size () const + Number of processes currently scheduled. More...
    +  +bool empty () const + Returns true if at least a process is currently scheduled. More...
    +  void clear ()  Discards all scheduled processes. More...
      @@ -137,6 +137,7 @@ class entt::scheduler< Delta >
    scheduler.attach([](auto delta, void *, auto succeed, auto fail) {
    // code
    }).then<my_process>(arguments...);
    +
    scheduler()=default
    Default constructor.

    In order to invoke all scheduled processes, call the update member function passing it the elapsed time to forward to the tasks.

    See also
    process
    Template Parameters
    @@ -184,7 +185,7 @@ template<typename Delta >
    -

    Definition at line 278 of file scheduler.hpp.

    +

    Definition at line 276 of file scheduler.hpp.

    @@ -242,7 +243,7 @@ template<typename Proc , typename... Args>
    Returns
    An opaque object to use to concatenate processes.
    -

    Definition at line 177 of file scheduler.hpp.

    +

    Definition at line 175 of file scheduler.hpp.

    @@ -314,7 +315,7 @@ template<typename Func >
    Returns
    An opaque object to use to concatenate processes.
    -

    Definition at line 238 of file scheduler.hpp.

    +

    Definition at line 236 of file scheduler.hpp.

    @@ -346,12 +347,12 @@ template<typename Delta >

    Discards all scheduled processes.

    Processes aren't aborted. They are discarded along with their children and never executed again.

    -

    Definition at line 147 of file scheduler.hpp.

    +

    Definition at line 145 of file scheduler.hpp.

    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -370,7 +371,7 @@ template<typename Delta >
    -inlinenoexcept +inline
    @@ -378,7 +379,7 @@ template<typename Delta >

    Returns true if at least a process is currently scheduled.

    Returns
    True if there are scheduled processes, false otherwise.
    -

    Definition at line 137 of file scheduler.hpp.

    +

    Definition at line 135 of file scheduler.hpp.

    @@ -413,8 +414,8 @@ template<typename Delta > - -

    ◆ size()

    + +

    ◆ size()

    @@ -433,7 +434,7 @@ template<typename Delta >
    -inlinenoexcept +inline
    @@ -441,7 +442,7 @@ template<typename Delta >

    Number of processes currently scheduled.

    Returns
    Number of processes currently scheduled.
    -

    Definition at line 129 of file scheduler.hpp.

    +

    Definition at line 127 of file scheduler.hpp.

    @@ -492,7 +493,7 @@ template<typename Delta > -

    Definition at line 254 of file scheduler.hpp.

    +

    Definition at line 252 of file scheduler.hpp.

    @@ -500,10 +501,9 @@ template<typename Delta >
  • src/entt/process/scheduler.hpp
  • -
    entt::scheduler::scheduler
    scheduler()=default
    Default constructor.
    diff --git a/classentt_1_1sigh.html b/classentt_1_1sigh.html index bf82fdb3d..83cff3270 100644 --- a/classentt_1_1sigh.html +++ b/classentt_1_1sigh.html @@ -3,7 +3,7 @@ - + EnTT: entt::sigh< typename > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -93,7 +93,7 @@ class entt::sigh< typename > diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html index 221da526b..034e9623d 100644 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,17 +74,17 @@ $(function() {

    This is the complete list of members for entt::sigh< Ret(Args...)>, including all inherited members.

    - + - +
    collect(Func func, Args... args) constentt::sigh< Ret(Args...)>inline
    empty() const noexceptentt::sigh< Ret(Args...)>inline
    empty() constentt::sigh< Ret(Args...)>inline
    instance_type typedefentt::sigh< Ret(Args...)>
    publish(Args... args) constentt::sigh< Ret(Args...)>inline
    sink< Ret(Args...)> classentt::sigh< Ret(Args...)>friend
    sink_type typedefentt::sigh< Ret(Args...)>
    size() const noexceptentt::sigh< Ret(Args...)>inline
    size() constentt::sigh< Ret(Args...)>inline
    size_type typedefentt::sigh< Ret(Args...)>
    diff --git a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html index b728804dd..9435c9c79 100644 --- a/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1sigh_3_01Ret_07Args_8_8_8_08_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::sigh< Ret(Args...)> Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,12 +98,12 @@ using 

    Public Member Functions

    -size_type size () const noexcept - Number of listeners connected to the signal. More...
    -  -bool empty () const noexcept - Returns false if at least a listener is connected to the signal. More...
    -  +size_type size () const + Number of listeners connected to the signal. More...
    +  +bool empty () const + Returns false if at least a listener is connected to the signal. More...
    +  void publish (Args... args) const  Triggers a signal. More...
      @@ -231,8 +231,8 @@ template<typename Func > - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -251,7 +251,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -302,8 +302,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ size()

    + +

    ◆ size()

    @@ -322,7 +322,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -340,7 +340,7 @@ template<typename Ret , typename... Args>
    diff --git a/classentt_1_1sigh__storage__mixin-members.html b/classentt_1_1sigh__storage__mixin-members.html index 183725072..55b7df455 100644 --- a/classentt_1_1sigh__storage__mixin-members.html +++ b/classentt_1_1sigh__storage__mixin-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,18 +73,18 @@ $(function() {

    This is the complete list of members for entt::sigh_storage_mixin< Type >, including all inherited members.

    - + - - - - + + + +
    emplace(basic_registry< entity_type > &owner, const entity_type entity, Args &&... args)entt::sigh_storage_mixin< Type >inline
    emplace(basic_registry< entity_type > &owner, const entity_type entt, Args &&... args)entt::sigh_storage_mixin< Type >inline
    entity_type typedefentt::sigh_storage_mixin< Type >
    insert(basic_registry< entity_type > &owner, It first, It last, Args &&... args)entt::sigh_storage_mixin< Type >inline
    on_construct() noexceptentt::sigh_storage_mixin< Type >inline
    on_destroy() noexceptentt::sigh_storage_mixin< Type >inline
    on_update() noexceptentt::sigh_storage_mixin< Type >inline
    patch(basic_registry< entity_type > &owner, const entity_type entity, Func &&... func)entt::sigh_storage_mixin< Type >inline
    on_construct()entt::sigh_storage_mixin< Type >inline
    on_destroy()entt::sigh_storage_mixin< Type >inline
    on_update()entt::sigh_storage_mixin< Type >inline
    patch(basic_registry< entity_type > &owner, const entity_type entt, Func &&... func)entt::sigh_storage_mixin< Type >inline
    value_type typedefentt::sigh_storage_mixin< Type >
    diff --git a/classentt_1_1sigh__storage__mixin.html b/classentt_1_1sigh__storage__mixin.html index bb1fcc5d0..4b0e5e8a2 100644 --- a/classentt_1_1sigh__storage__mixin.html +++ b/classentt_1_1sigh__storage__mixin.html @@ -3,7 +3,7 @@ - + EnTT: entt::sigh_storage_mixin< Type > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -83,7 +83,7 @@ $(function() { Inheritance diagram for entt::sigh_storage_mixin< Type >:
    Inheritance graph
    - + @@ -92,7 +92,7 @@ Inheritance diagram for entt::sigh_storage_mixin< Type >:
    Collaboration diagram for entt::sigh_storage_mixin< Type >:
    Collaboration graph
    - + @@ -111,27 +111,27 @@ using 

    Public Member Functions

    -auto on_construct () noexcept - Returns a sink object. More...
    -  -auto on_update () noexcept - Returns a sink object. More...
    -  -auto on_destroy () noexcept - Returns a sink object. More...
    -  -template<typename... Args> -decltype(auto) emplace (basic_registry< entity_type > &owner, const entity_type entity, Args &&... args) - Assigns entities to a storage. More...
    -  +auto on_construct () + Returns a sink object. More...
    +  +auto on_update () + Returns a sink object. More...
    +  +auto on_destroy () + Returns a sink object. More...
    +  +template<typename... Args> +decltype(auto) emplace (basic_registry< entity_type > &owner, const entity_type entt, Args &&... args) + Assigns entities to a storage. More...
    +  template<typename It , typename... Args> void insert (basic_registry< entity_type > &owner, It first, It last, Args &&... args)  Assigns entities to a storage. More...
      -template<typename... Func> -decltype(auto) patch (basic_registry< entity_type > &owner, const entity_type entity, Func &&... func) - Patches the given instance for an entity. More...
    -  +template<typename... Func> +decltype(auto) patch (basic_registry< entity_type > &owner, const entity_type entt, Func &&... func) + Patches the given instance for an entity. More...

    Detailed Description

    template<typename Type>
    @@ -145,10 +145,10 @@ class entt::sigh_storage_mixin< Type >

    -

    Definition at line 634 of file storage.hpp.

    +

    Definition at line 851 of file storage.hpp.

    Member Function Documentation

    - -

    ◆ emplace()

    + +

    ◆ emplace()

    @@ -170,7 +170,7 @@ template<typename... Args>
    const entity_type  - entity, + entt, @@ -201,14 +201,14 @@ template<typename... Args>
    Parameters
    - +
    ownerThe registry that issued the request.
    entityA valid entity identifier.
    enttA valid entity identifier.
    argsParameters to use to initialize the object.
    Returns
    A reference to the newly created object.
    -

    Definition at line 728 of file storage.hpp.

    +

    Definition at line 949 of file storage.hpp.

    @@ -280,12 +280,12 @@ template<typename It , typename... Args> -

    Definition at line 746 of file storage.hpp.

    +

    Definition at line 967 of file storage.hpp.

    - -

    ◆ on_construct()

    + +

    ◆ on_construct()

    @@ -304,7 +304,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -313,16 +313,17 @@ template<typename Type >

    The sink returned by this function can be used to receive notifications whenever a new instance is created and assigned to an entity.
    The function type for a listener is equivalent to:

    void(basic_registry<entity_type> &, entity_type);
    +
    typename Type::entity_type entity_type
    Underlying entity identifier.
    Definition: storage.hpp:870

    Listeners are invoked after the object has been assigned to the entity.

    See also
    sink
    Returns
    A temporary sink object.
    -

    Definition at line 672 of file storage.hpp.

    +

    Definition at line 893 of file storage.hpp.

    - -

    ◆ on_destroy()

    + +

    ◆ on_destroy()

    @@ -341,7 +342,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -354,12 +355,12 @@ template<typename Type >
    See also
    sink
    Returns
    A temporary sink object.
    -

    Definition at line 715 of file storage.hpp.

    +

    Definition at line 936 of file storage.hpp.

    - -

    ◆ on_update()

    + +

    ◆ on_update()

    @@ -378,7 +379,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -391,12 +392,12 @@ template<typename Type >
    See also
    sink
    Returns
    A temporary sink object.
    -

    Definition at line 693 of file storage.hpp.

    +

    Definition at line 914 of file storage.hpp.

    - -

    ◆ patch()

    + +

    ◆ patch()

    @@ -418,7 +419,7 @@ template<typename... Func>
    const entity_type  - entity, + entt, @@ -449,14 +450,14 @@ template<typename... Func>
    Parameters
    - +
    ownerThe registry that issued the request.
    entityA valid entity identifier.
    enttA valid entity identifier.
    funcValid function objects.
    Returns
    A reference to the patched instance.
    -

    Definition at line 765 of file storage.hpp.

    +

    Definition at line 986 of file storage.hpp.

    @@ -464,10 +465,9 @@ template<typename... Func>
  • src/entt/entity/storage.hpp
  • -
    entt::sigh_storage_mixin::entity_type
    typename Type::entity_type entity_type
    Underlying entity identifier.
    Definition: storage.hpp:652
    diff --git a/classentt_1_1sink.html b/classentt_1_1sink.html index 8f5b909e5..c41783495 100644 --- a/classentt_1_1sink.html +++ b/classentt_1_1sink.html @@ -3,7 +3,7 @@ - + EnTT: entt::sink< typename > Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -93,7 +93,7 @@ class entt::sink< typename > diff --git a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html index fa94309e9..ed5bdd45b 100644 --- a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html +++ b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -85,12 +85,12 @@ $(function() { disconnect(Type &value_or_instance)entt::sink< Ret(Args...)>inline disconnect(Type *value_or_instance)entt::sink< Ret(Args...)>inline disconnect()entt::sink< Ret(Args...)>inline - empty() const noexceptentt::sink< Ret(Args...)>inline - sink(sigh< Ret(Args...)> &ref) noexceptentt::sink< Ret(Args...)>inline + empty() constentt::sink< Ret(Args...)>inline + sink(sigh< Ret(Args...)> &ref)entt::sink< Ret(Args...)>inline diff --git a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html index 8765db702..06f41bf13 100644 --- a/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html +++ b/classentt_1_1sink_3_01Ret_07Args_8_8_8_08_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::sink< Ret(Args...)> Class Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,12 +81,12 @@ $(function() { - - - - - - + + + + + + @@ -154,8 +154,8 @@ class entt::sink< Ret(Args...)>

    Definition at line 269 of file sigh.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ sink()

    + +

    ◆ sink()

    @@ -175,7 +175,7 @@ template<typename Ret , typename... Args>

    Public Member Functions

     sink (sigh< Ret(Args...)> &ref) noexcept
     Constructs a sink that is allowed to modify a given signal. More...
     
    bool empty () const noexcept
     Returns false if at least a listener is connected to the sink. More...
     
     sink (sigh< Ret(Args...)> &ref)
     Constructs a sink that is allowed to modify a given signal. More...
     
    bool empty () const
     Returns false if at least a listener is connected to the sink. More...
     
    template<auto Function>
    sink before ()
     Returns a sink that connects before a given free function or an unbound member. More...
    -inlinenoexcept +inline
    @@ -676,8 +676,8 @@ template<typename Type >
    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -696,7 +696,7 @@ template<typename Ret , typename... Args>
    -inlinenoexcept +inline
    @@ -714,7 +714,7 @@ template<typename Ret , typename... Args>
    diff --git a/classentt_1_1type__info-members.html b/classentt_1_1type__info-members.html index 399a10bc4..e23ed00b7 100644 --- a/classentt_1_1type__info-members.html +++ b/classentt_1_1type__info-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,21 +73,21 @@ $(function() {

    This is the complete list of members for entt::type_info, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + +
    hash() const noexceptentt::type_infoinline
    name() const noexceptentt::type_infoinline
    operator bool() const noexceptentt::type_infoinlineexplicit
    operator=(const type_info &) noexcept=defaultentt::type_info
    operator=(type_info &&) noexcept=defaultentt::type_info
    operator==(const type_info &other) const noexceptentt::type_infoinline
    seq() const noexceptentt::type_infoinline
    type_id() noexceptentt::type_infofriend
    type_info() noexceptentt::type_infoinline
    type_info(const type_info &) noexcept=defaultentt::type_info
    type_info(type_info &&) noexcept=defaultentt::type_info
    hash() constentt::type_infoinline
    name() constentt::type_infoinline
    operator bool() constentt::type_infoinlineexplicit
    operator=(const type_info &)=defaultentt::type_info
    operator=(type_info &&)=defaultentt::type_info
    operator==(const type_info &other) constentt::type_infoinline
    seq() constentt::type_infoinline
    type_id()entt::type_infofriend
    type_info()entt::type_infoinline
    type_info(const type_info &)=defaultentt::type_info
    type_info(type_info &&)=defaultentt::type_info
    diff --git a/classentt_1_1type__info.html b/classentt_1_1type__info.html index 8195c19cf..88d4759aa 100644 --- a/classentt_1_1type__info.html +++ b/classentt_1_1type__info.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_info Class Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,54 +82,54 @@ $(function() { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    type_info () noexcept
     Default constructor.
     
    type_info (const type_info &) noexcept=default
     Default copy constructor.
     
    type_info (type_info &&) noexcept=default
     Default move constructor.
     
    type_infooperator= (const type_info &) noexcept=default
     Default copy assignment operator. More...
     
    type_infooperator= (type_info &&) noexcept=default
     Default move assignment operator. More...
     
     operator bool () const noexcept
     Checks if a type info object is properly initialized. More...
     
    id_type seq () const noexcept
     Type sequential identifier. More...
     
    id_type hash () const noexcept
     Type hash. More...
     
    std::string_view name () const noexcept
     Type name. More...
     
    bool operator== (const type_info &other) const noexcept
     Compares the contents of two type info objects. More...
     
    type_info ()
     Default constructor.
     
    type_info (const type_info &)=default
     Default copy constructor.
     
    type_info (type_info &&)=default
     Default move constructor.
     
    type_infooperator= (const type_info &)=default
     Default copy assignment operator. More...
     
    type_infooperator= (type_info &&)=default
     Default move assignment operator. More...
     
     operator bool () const
     Checks if a type info object is properly initialized. More...
     
    id_type seq () const
     Type sequential identifier. More...
     
    id_type hash () const
     Type hash. More...
     
    std::string_view name () const
     Type name. More...
     
    bool operator== (const type_info &other) const
     Compares the contents of two type info objects. More...
     
    - - - - + + + +

    Friends

    template<typename >
    type_info type_id () noexcept
     Returns the type info object for a given type. More...
     
    template<typename >
    type_info type_id ()
     Returns the type info object for a given type. More...
     

    Detailed Description

    Implementation specific information about a type.

    Definition at line 150 of file type_info.hpp.

    Member Function Documentation

    - -

    ◆ hash()

    + +

    ◆ hash()

    @@ -146,7 +146,7 @@ Friends -inlinenoexcept +inline
    @@ -158,8 +158,8 @@ Friends
    - -

    ◆ name()

    + +

    ◆ name()

    @@ -176,7 +176,7 @@ Friends -inlinenoexcept +inline
    @@ -188,8 +188,8 @@ Friends
    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -206,7 +206,7 @@ Friends -inlineexplicitnoexcept +inlineexplicit
    @@ -218,8 +218,8 @@ Friends
    - -

    ◆ operator=() [1/2]

    + +

    ◆ operator=() [1/2]

    @@ -237,7 +237,7 @@ Friends -defaultnoexcept +default
    @@ -247,8 +247,8 @@ Friends
    - -

    ◆ operator=() [2/2]

    + +

    ◆ operator=() [2/2]

    @@ -266,7 +266,7 @@ Friends -defaultnoexcept +default
    @@ -276,8 +276,8 @@ Friends
    - -

    ◆ operator==()

    + +

    ◆ operator==()

    @@ -295,7 +295,7 @@ Friends -inlinenoexcept +inline
    @@ -313,8 +313,8 @@ Friends
    - -

    ◆ seq()

    + +

    ◆ seq()

    @@ -331,7 +331,7 @@ Friends -inlinenoexcept +inline
    @@ -344,8 +344,8 @@ Friends

    Friends And Related Function Documentation

    - -

    ◆ type_id

    + +

    ◆ type_id

    @@ -388,7 +388,7 @@ template<typename >
    diff --git a/classentt_1_1view__iterator-members.html b/classentt_1_1view__iterator-members.html new file mode 100644 index 000000000..86d619be8 --- /dev/null +++ b/classentt_1_1view__iterator-members.html @@ -0,0 +1,97 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::view_iterator< Policy, It, AllOf, NoneOf > Member List
    +
    +
    + +

    This is the complete list of members for entt::view_iterator< Policy, It, AllOf, NoneOf >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >
    iterator_category typedef (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >
    operator!=(const view_iterator &other) const (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator*() const (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator++() (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator++(int) (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator--() (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator--(int) (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator->() const (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    operator==(const view_iterator &other) const (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    pointer typedef (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >
    reference typedef (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >
    value_type typedef (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >
    view_iterator() (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    view_iterator(It from, It to, It curr, std::array< const basic_common_type *, AllOf > all_of, std::array< const basic_common_type *, NoneOf > none_of) (defined in entt::view_iterator< Policy, It, AllOf, NoneOf >)entt::view_iterator< Policy, It, AllOf, NoneOf >inline
    + + + + diff --git a/classentt_1_1view__iterator.html b/classentt_1_1view__iterator.html new file mode 100644 index 000000000..b4041f0ec --- /dev/null +++ b/classentt_1_1view__iterator.html @@ -0,0 +1,141 @@ + + + + + + + +EnTT: entt::view_iterator< Policy, It, AllOf, NoneOf > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Types | +Public Member Functions | +List of all members
    +
    +
    entt::view_iterator< Policy, It, AllOf, NoneOf > Class Template Referencefinal
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    +using difference_type = typename std::iterator_traits< It >::difference_type
     
    +using value_type = typename std::iterator_traits< It >::value_type
     
    +using pointer = typename std::iterator_traits< It >::pointer
     
    +using reference = typename std::iterator_traits< It >::reference
     
    +using iterator_category = std::bidirectional_iterator_tag
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    view_iterator (It from, It to, It curr, std::array< const basic_common_type *, AllOf > all_of, std::array< const basic_common_type *, NoneOf > none_of)
     
    +view_iteratoroperator++ ()
     
    +view_iterator operator++ (int)
     
    +view_iteratoroperator-- ()
     
    +view_iterator operator-- (int)
     
    +bool operator== (const view_iterator &other) const
     
    +bool operator!= (const view_iterator &other) const
     
    +pointer operator-> () const
     
    +reference operator* () const
     
    +

    Detailed Description

    +

    template<typename Policy, typename It, std::size_t AllOf, std::size_t NoneOf>
    +class entt::view_iterator< Policy, It, AllOf, NoneOf >

    + + +

    Definition at line 53 of file iterator.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4-members.html b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4-members.html new file mode 100644 index 000000000..b47c78914 --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4-members.html @@ -0,0 +1,83 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::view_iterator< packed_storage_policy, It, 0u, 0u > Member List
    +
    +
    + +

    This is the complete list of members for entt::view_iterator< packed_storage_policy, It, 0u, 0u >, including all inherited members.

    + + +
    view_iterator(It it) (defined in entt::view_iterator< packed_storage_policy, It, 0u, 0u >)entt::view_iterator< packed_storage_policy, It, 0u, 0u >inline
    + + + + diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4.html b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4.html new file mode 100644 index 000000000..80537d0c7 --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4.html @@ -0,0 +1,116 @@ + + + + + + + +EnTT: entt::view_iterator< packed_storage_policy, It, 0u, 0u > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Member Functions | +List of all members
    +
    +
    entt::view_iterator< packed_storage_policy, It, 0u, 0u > Class Template Referencefinal
    +
    +
    +
    +Inheritance diagram for entt::view_iterator< packed_storage_policy, It, 0u, 0u >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::view_iterator< packed_storage_policy, It, 0u, 0u >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    + + + + +

    +Public Member Functions

    view_iterator (It it)
     
    +

    Detailed Description

    +

    template<typename It>
    +class entt::view_iterator< packed_storage_policy, It, 0u, 0u >

    + + +

    Definition at line 136 of file iterator.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.map b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.map new file mode 100644 index 000000000..6de294ae3 --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.md5 b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.md5 new file mode 100644 index 000000000..3e09ff0bd --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.md5 @@ -0,0 +1 @@ +905c3cc13435e19178e2e8d818588ba5 \ No newline at end of file diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.png b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.png new file mode 100644 index 000000000..23c471d91 Binary files /dev/null and b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__coll__graph.png differ diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.map b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.map new file mode 100644 index 000000000..6de294ae3 --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.md5 b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.md5 new file mode 100644 index 000000000..3e09ff0bd --- /dev/null +++ b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.md5 @@ -0,0 +1 @@ +905c3cc13435e19178e2e8d818588ba5 \ No newline at end of file diff --git a/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.png b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.png new file mode 100644 index 000000000..23c471d91 Binary files /dev/null and b/classentt_1_1view__iterator_3_01packed__storage__policy_00_01It_00_010u_00_010u_01_4__inherit__graph.png differ diff --git a/classentt_1_1view__iterator__new-members.html b/classentt_1_1view__iterator__new-members.html new file mode 100644 index 000000000..c11c26705 --- /dev/null +++ b/classentt_1_1view__iterator__new-members.html @@ -0,0 +1,97 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::view_iterator_new< It, Component, Exclude > Member List
    +
    +
    + +

    This is the complete list of members for entt::view_iterator_new< It, Component, Exclude >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >
    iterator_category typedef (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >
    operator!=(const view_iterator_new &other) const (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator*() const (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator++() (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator++(int) (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator--() (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator--(int) (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator->() const (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    operator==(const view_iterator_new &other) const (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    pointer typedef (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >
    reference typedef (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >
    value_type typedef (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >
    view_iterator_new() (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    view_iterator_new(It from, It to, It curr, std::array< underlying_type *, Component > component, std::array< underlying_type *, Exclude > exclude) (defined in entt::view_iterator_new< It, Component, Exclude >)entt::view_iterator_new< It, Component, Exclude >inline
    + + + + diff --git a/classentt_1_1view__iterator__new.html b/classentt_1_1view__iterator__new.html new file mode 100644 index 000000000..1a0c8f40d --- /dev/null +++ b/classentt_1_1view__iterator__new.html @@ -0,0 +1,141 @@ + + + + + + + +EnTT: entt::view_iterator_new< It, Component, Exclude > Class Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Types | +Public Member Functions | +List of all members
    +
    +
    entt::view_iterator_new< It, Component, Exclude > Class Template Referencefinal
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    +using difference_type = typename std::iterator_traits< It >::difference_type
     
    +using value_type = typename std::iterator_traits< It >::value_type
     
    +using pointer = typename std::iterator_traits< It >::pointer
     
    +using reference = typename std::iterator_traits< It >::reference
     
    +using iterator_category = std::bidirectional_iterator_tag
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    view_iterator_new (It from, It to, It curr, std::array< underlying_type *, Component > component, std::array< underlying_type *, Exclude > exclude)
     
    +view_iterator_newoperator++ ()
     
    +view_iterator_new operator++ (int)
     
    +view_iterator_newoperator-- ()
     
    +view_iterator_new operator-- (int)
     
    +bool operator== (const view_iterator_new &other) const
     
    +bool operator!= (const view_iterator_new &other) const
     
    +pointer operator-> () const
     
    +reference operator* () const
     
    +

    Detailed Description

    +

    template<typename It, std::size_t Component, std::size_t Exclude>
    +class entt::view_iterator_new< It, Component, Exclude >

    + + +

    Definition at line 24 of file view.hpp.

    +

    The documentation for this class was generated from the following file: +
    + + + + diff --git a/classes.html b/classes.html index 3984cdb6b..83c681821 100644 --- a/classes.html +++ b/classes.html @@ -3,7 +3,7 @@ - + EnTT: Class Index @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,262 +66,64 @@ $(function() {
    Class Index
    -
    a | b | c | d | e | f | g | i | m | n | o | p | r | s | t | v | y
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      a  
    -
    choice_t< 0 > (entt)   is_empty (entt)   meta_sequence_container (entt)   Storage (entt)   
    connect_arg_t (entt)   is_equality_comparable (entt)   meta_sequence_container_traits (entt)   storage_adapter_mixin (entt)   
    adl_meta_pointer_like (entt)   emitter::connection (entt)   is_key_only_meta_associative_container (entt)   meta_sequence_container_traits< std::array< Type, N > > (entt)   storage_traits (entt)   
    as_cref_t (entt)   connection (entt)   is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > > (entt)   meta_sequence_container_traits< std::vector< Type, Args... > > (entt)   
      t  
    -
    as_group (entt)   constness_as (entt)   is_meta_pointer_like (entt)   meta_template_traits (entt)   
    as_is_t (entt)   constness_as< To, const From > (entt)   is_meta_pointer_like< const Type > (entt)   meta_template_traits< Clazz< Args... > > (entt)   Storage::type (entt)   
    as_ref_t (entt)   
      d  
    -
    is_meta_pointer_like< std::shared_ptr< Type > > (entt)   meta_type (entt)   type_hash (entt)   
    as_view (entt)   is_meta_pointer_like< std::unique_ptr< Type, Args... > > (entt)   monostate (entt)   type_identity (entt)   
    as_void_t (entt)   delegate (entt)   is_meta_pointer_like< Type * > (entt)   
      n  
    -
    type_info (entt)   
      b  
    -
    delegate< Ret(Args...)> (entt)   is_std_hashable (entt)   type_list (entt)   
    dispatcher (entt)   is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > > (entt)   null_t (entt)   type_list_cat (entt)   
    basic_any (entt)   dynamic_associative_key_only_container (entt)   
      m  
    -
      o  
    -
    type_list_cat< type_list< Type... > > (entt)   
    basic_associative_container (entt)   dynamic_associative_key_value_container (entt)   type_list_cat< type_list< Type... >, type_list< Other... >, List... > (entt)   
    basic_collector (entt)   dynamic_sequence_container (entt)   matcher (entt)   overloaded (entt)   type_list_cat<> (entt)   
    basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > (entt)   
      e  
    -
    member_class (entt)   
      p  
    -
    type_list_contains (entt)   
    basic_collector<> (entt)   meta_any (entt)   type_list_contains< type_list< Type... >, Other > (entt)   
    basic_container (entt)   emitter (entt)   meta_associative_container (entt)   poly_base (entt)   type_list_diff (entt)   
    basic_continuous_loader (entt)   entt_traits (entt)   meta_associative_container_traits (entt)   poly_inspector (entt)   type_list_diff< type_list< Type... >, type_list< Other... > > (entt)   
    basic_dynamic_associative_container (entt)   entt_traits< std::uint32_t > (entt)   meta_associative_container_traits< std::map< Key, Value, Args... > > (entt)   poly_storage_traits (entt)   type_list_element (entt)   
    basic_dynamic_container (entt)   entt_traits< std::uint64_t > (entt)   meta_associative_container_traits< std::set< Key, Args... > > (entt)   poly_vtable (entt)   type_list_element< 0u, type_list< Type, Other... > > (entt)   
    basic_group (entt)   entt_traits< Type, std::enable_if_t< std::is_enum_v< Type > > > (entt)   meta_associative_container_traits< std::unordered_map< Key, Value, Args... > > (entt)   process (entt)   type_list_element< Index, type_list< Type, Other... > > (entt)   
    basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > (entt)   exclude_t (entt)   meta_associative_container_traits< std::unordered_set< Key, Args... > > (entt)   process_adaptor (entt)   type_list_unique (entt)   
    basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > (entt)   
      f  
    -
    meta_class_template_tag (entt)   
      r  
    -
    type_list_unique< type_list< Type, Other... > > (entt)   
    basic_handle (entt)   meta_container_traits (entt)   type_list_unique< type_list<> > (entt)   
    basic_hashed_string (entt)   family (entt)   meta_ctor (entt)   radix_sort (entt)   type_name (entt)   
    basic_observer (entt)   fixed_sequence_container (entt)   meta_ctx (entt)   resource_cache (entt)   type_seq (entt)   
    basic_organizer (entt)   
      g  
    -
    meta_data (entt)   resource_handle (entt)   
      v  
    -
    basic_poly (entt)   meta_factory (entt)   resource_loader (entt)   
    basic_registry (entt)   get_t (entt)   meta_factory< Type > (entt)   
      s  
    -
    value_list (entt)   
    basic_runtime_view (entt)   
      i  
    -
    meta_factory< Type, Spec... > (entt)   value_list_cat (entt)   
    basic_sequence_container (entt)   meta_func (entt)   scheduler (entt)   value_list_cat< value_list< Value... > > (entt)   
    basic_snapshot (entt)   identifier (entt)   meta_function_descriptor (entt)   scoped_connection (entt)   value_list_cat< value_list< Value... >, value_list< Other... >, List... > (entt)   
    basic_snapshot_loader (entt)   identity (entt)   meta_function_descriptor< Type, Ret(*)(Args...)> (entt)   service_locator (entt)   value_list_cat<> (entt)   
    basic_sparse_set (entt)   insertion_sort (entt)   meta_function_descriptor< Type, Ret(Class::*)(Args...) const > (entt)   sigh (entt)   value_list_element (entt)   
    basic_storage (entt)   is_applicable (entt)   meta_function_descriptor< Type, Ret(Class::*)(Args...)> (entt)   sigh< Ret(Args...)> (entt)   value_list_element< 0u, value_list< Value, Other... > > (entt)   
    basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > > (entt)   is_applicable< Func, const Tuple< Args... > > (entt)   meta_function_helper (entt)   sigh_storage_mixin (entt)   value_list_element< Index, value_list< Value, Other... > > (entt)   
    basic_view (entt)   is_applicable< Func, Tuple< Args... > > (entt)   meta_handle (entt)   sink (entt)   basic_organizer::vertex (entt)   
    basic_view< Entity, exclude_t< Exclude... >, Component... > (entt)   is_applicable_r (entt)   meta_sequence_container::meta_iterator (entt)   sink< Ret(Args...)> (entt)   
      y  
    -
    basic_view< Entity, exclude_t<>, Component > (entt)   is_applicable_r< Ret, Func, std::tuple< Args... > > (entt)   meta_associative_container::meta_iterator (entt)   size_of (entt)   
      c  
    -
    is_complete (entt)   meta_prop (entt)   size_of< Type, std::void_t< decltype(sizeof(Type))> > (entt)   y_combinator (entt)   
    is_complete< Type, std::void_t< decltype(sizeof(Type))> > (entt)   meta_range (entt)   std_sort (entt)   
    choice_t (entt)   
    -
    a | b | c | d | e | f | g | i | m | n | o | p | r | s | t | v | y
    +
    A | B | C | D | E | F | G | I | M | N | O | P | R | S | T | V | Y
    +
    +
    +
    A
    +
    adl_meta_pointer_like (entt)
    as_cref_t (entt)
    as_group (entt)
    as_is_t (entt)
    as_ref_t (entt)
    as_view (entt)
    as_void_t (entt)
    +
    +
    B
    +
    basic_any (entt)
    basic_associative_container (entt)
    basic_collector (entt)
    basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > (entt)
    basic_collector<> (entt)
    basic_component_traits (entt)
    basic_container (entt)
    basic_continuous_loader (entt)
    basic_dynamic_associative_container (entt)
    basic_dynamic_container (entt)
    basic_group (entt)
    basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > (entt)
    basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > (entt)
    basic_handle (entt)
    basic_hashed_string (entt)
    basic_observer (entt)
    basic_organizer (entt)
    basic_poly (entt)
    basic_registry (entt)
    basic_runtime_view (entt)
    basic_sequence_container (entt)
    basic_snapshot (entt)
    basic_snapshot_loader (entt)
    basic_sparse_set (entt)
    basic_storage (entt)
    basic_storage_impl (entt)
    basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > (entt)
    basic_view (entt)
    basic_view< Entity, exclude_t< Exclude... >, Component... > (entt)
    basic_view_impl (entt)
    basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > (entt)
    basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > (entt)
    +
    +
    C
    +
    choice_t (entt)
    choice_t< 0 > (entt)
    component_traits (entt)
    connect_arg_t (entt)
    connection (entt)
    emitter::connection (entt)
    constness_as (entt)
    constness_as< To, const From > (entt)
    +
    +
    D
    +
    delegate (entt)
    delegate< Ret(Args...)> (entt)
    dispatcher (entt)
    dynamic_associative_key_only_container (entt)
    dynamic_associative_key_value_container (entt)
    dynamic_sequence_container (entt)
    +
    +
    E
    +
    emitter (entt)
    entt_traits (entt)
    exclude_t (entt)
    +
    +
    F
    +
    family (entt)
    fixed_sequence_container (entt)
    +
    +
    G
    +
    get_t (entt)
    +
    +
    I
    +
    identifier (entt)
    identity (entt)
    insertion_sort (entt)
    is_applicable (entt)
    is_applicable< Func, const Tuple< Args... > > (entt)
    is_applicable< Func, Tuple< Args... > > (entt)
    is_applicable_r (entt)
    is_applicable_r< Ret, Func, std::tuple< Args... > > (entt)
    is_complete (entt)
    is_complete< Type, std::void_t< decltype(sizeof(Type))> > (entt)
    is_equality_comparable (entt)
    is_iterator (entt)
    is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > > (entt)
    is_iterator_type (entt)
    is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > > (entt)
    is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > > (entt)
    is_key_only_meta_associative_container (entt)
    is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > > (entt)
    is_meta_pointer_like (entt)
    is_meta_pointer_like< const Type > (entt)
    is_meta_pointer_like< std::shared_ptr< Type > > (entt)
    is_meta_pointer_like< std::unique_ptr< Type, Args... > > (entt)
    is_meta_pointer_like< Type * > (entt)
    is_meta_pointer_like< Type(*)[N]> (entt)
    +
    +
    M
    +
    matcher (entt)
    member_class (entt)
    meta_any (entt)
    meta_associative_container (entt)
    meta_associative_container_traits (entt)
    meta_associative_container_traits< std::map< Key, Value, Args... > > (entt)
    meta_associative_container_traits< std::set< Key, Args... > > (entt)
    meta_associative_container_traits< std::unordered_map< Key, Value, Args... > > (entt)
    meta_associative_container_traits< std::unordered_set< Key, Args... > > (entt)
    meta_class_template_tag (entt)
    meta_container_traits (entt)
    meta_ctor (entt)
    meta_ctx (entt)
    meta_data (entt)
    meta_factory (entt)
    meta_factory< Type > (entt)
    meta_factory< Type, Spec... > (entt)
    meta_func (entt)
    meta_function_descriptor (entt)
    meta_function_descriptor< Type, Ret(*)(Args...)> (entt)
    meta_function_descriptor< Type, Ret(Class::*)(Args...) const > (entt)
    meta_function_descriptor< Type, Ret(Class::*)(Args...)> (entt)
    meta_function_helper (entt)
    meta_handle (entt)
    meta_associative_container::meta_iterator (entt)
    meta_sequence_container::meta_iterator (entt)
    meta_prop (entt)
    meta_range (entt)
    meta_sequence_container (entt)
    meta_sequence_container_traits (entt)
    meta_sequence_container_traits< std::array< Type, N > > (entt)
    meta_sequence_container_traits< std::vector< Type, Args... > > (entt)
    meta_template_traits (entt)
    meta_template_traits< Clazz< Args... > > (entt)
    meta_type (entt)
    monostate (entt)
    +
    +
    N
    +
    null_t (entt)
    +
    +
    O
    +
    overloaded (entt)
    +
    +
    P
    +
    packed_storage_policy (entt)
    poly_base (entt)
    poly_inspector (entt)
    poly_storage_traits (entt)
    poly_vtable (entt)
    process (entt)
    process_adaptor (entt)
    +
    +
    R
    +
    radix_sort (entt)
    resource_cache (entt)
    resource_handle (entt)
    resource_loader (entt)
    +
    +
    S
    +
    scheduler (entt)
    scoped_connection (entt)
    service_locator (entt)
    sigh (entt)
    sigh< Ret(Args...)> (entt)
    sigh_storage_mixin (entt)
    sink (entt)
    sink< Ret(Args...)> (entt)
    size_of (entt)
    size_of< Type, std::void_t< decltype(sizeof(Type))> > (entt)
    stable_storage_policy (entt)
    std_sort (entt)
    Storage (entt)
    storage_adapter_mixin (entt)
    storage_traits (entt)
    +
    +
    T
    +
    tombstone_t (entt)
    Storage::type (entt)
    type_hash (entt)
    type_identity (entt)
    type_info (entt)
    type_list (entt)
    type_list_cat (entt)
    type_list_cat< type_list< Type... > > (entt)
    type_list_cat< type_list< Type... >, type_list< Other... >, List... > (entt)
    type_list_cat<> (entt)
    type_list_contains (entt)
    type_list_contains< type_list< Type... >, Other > (entt)
    type_list_diff (entt)
    type_list_diff< type_list< Type... >, type_list< Other... > > (entt)
    type_list_element (entt)
    type_list_element< 0u, type_list< Type, Other... > > (entt)
    type_list_element< Index, type_list< Type, Other... > > (entt)
    type_list_unique (entt)
    type_list_unique< type_list< Type, Other... > > (entt)
    type_list_unique< type_list<> > (entt)
    type_name (entt)
    type_seq (entt)
    +
    +
    V
    +
    value_list (entt)
    value_list_cat (entt)
    value_list_cat< value_list< Value... > > (entt)
    value_list_cat< value_list< Value... >, value_list< Other... >, List... > (entt)
    value_list_cat<> (entt)
    value_list_element (entt)
    value_list_element< 0u, value_list< Value, Other... > > (entt)
    value_list_element< Index, value_list< Value, Other... > > (entt)
    basic_organizer::vertex (entt)
    +
    +
    Y
    +
    y_combinator (entt)
    +
    diff --git a/component_8hpp_source.html b/component_8hpp_source.html new file mode 100644 index 000000000..3462b86cf --- /dev/null +++ b/component_8hpp_source.html @@ -0,0 +1,111 @@ + + + + + + + +EnTT: src/entt/entity/component.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    component.hpp
    +
    +
    +
    1 #ifndef ENTT_ENTITY_COMPONENT_HPP
    +
    2 #define ENTT_ENTITY_COMPONENT_HPP
    +
    3 
    +
    4 
    +
    5 #include <type_traits>
    +
    6 #include "../config/config.h"
    +
    7 
    +
    8 
    +
    9 namespace entt {
    +
    10 
    +
    11 
    + +
    15  using in_place_delete = std::false_type;
    +
    17  using ignore_if_empty = ENTT_IGNORE_IF_EMPTY;
    +
    18 };
    +
    19 
    +
    20 
    +
    25 template<typename Type, typename = void>
    + +
    27  static_assert(std::is_same_v<std::decay_t<Type>, Type>, "Unsupported type");
    +
    28 };
    +
    29 
    +
    30 
    +
    31 }
    +
    32 
    +
    33 
    +
    34 #endif
    +
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    Commonly used default traits for all types.
    Definition: component.hpp:13
    +
    std::true_type ignore_if_empty
    Empty type optimization, default is ENTT_IGNORE_IF_EMPTY.
    Definition: component.hpp:17
    +
    std::false_type in_place_delete
    Pointer stability, default is std::false_type.
    Definition: component.hpp:15
    +
    Common way to access various properties of components.
    Definition: component.hpp:26
    +
    + + + + diff --git a/compressed__pair_8hpp_source.html b/compressed__pair_8hpp_source.html new file mode 100644 index 000000000..37a943cbf --- /dev/null +++ b/compressed__pair_8hpp_source.html @@ -0,0 +1,280 @@ + + + + + + + +EnTT: src/entt/core/compressed_pair.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    compressed_pair.hpp
    +
    +
    +
    1 #ifndef ENTT_CORE_COMPRESSED_PAIR_HPP
    +
    2 #define ENTT_CORE_COMPRESSED_PAIR_HPP
    +
    3 
    +
    4 
    +
    5 #include <cstddef>
    +
    6 #include <tuple>
    +
    7 #include <type_traits>
    +
    8 #include <utility>
    +
    9 #include "../config/config.h"
    +
    10 #include "type_traits.hpp"
    +
    11 
    +
    12 
    +
    13 namespace entt {
    +
    14 
    +
    15 
    +
    22 namespace internal {
    +
    23 
    +
    24 
    +
    25 template<typename Type, std::size_t, typename = void>
    +
    26 struct compressed_pair_element {
    +
    27  template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<Type>>>
    +
    28  compressed_pair_element()
    +
    29  : value{}
    +
    30  {}
    +
    31 
    +
    32  template<typename Args, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Args>, compressed_pair_element>>>
    +
    33  compressed_pair_element(Args &&args)
    +
    34  : value{std::forward<Args>(args)}
    +
    35  {}
    +
    36 
    +
    37  template<typename... Args, std::size_t... Index>
    +
    38  compressed_pair_element(std::tuple<Args...> args, std::index_sequence<Index...>)
    +
    39  : value{std::get<Index>(args)...}
    +
    40  {}
    +
    41 
    +
    42  [[nodiscard]] Type & get() ENTT_NOEXCEPT {
    +
    43  return value;
    +
    44  }
    +
    45 
    +
    46  [[nodiscard]] const Type & get() const ENTT_NOEXCEPT {
    +
    47  return value;
    +
    48  }
    +
    49 
    +
    50 private:
    +
    51  Type value;
    +
    52 };
    +
    53 
    +
    54 
    +
    55 template<typename Type, std::size_t Tag>
    +
    56 struct compressed_pair_element<Type, Tag, std::enable_if_t<is_ebco_eligible_v<Type>>>
    +
    57  : Type
    +
    58 {
    +
    59  template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<Type>>>
    +
    60  compressed_pair_element()
    +
    61  : Type{}
    +
    62  {}
    +
    63 
    +
    64  template<typename Args, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Args>, compressed_pair_element>>>
    +
    65  compressed_pair_element(Args &&args)
    +
    66  : Type{std::forward<Args>(args)}
    +
    67  {}
    +
    68 
    +
    69  template<typename... Args, std::size_t... Index>
    +
    70  compressed_pair_element(std::tuple<Args...> args, std::index_sequence<Index...>)
    +
    71  : Type{std::get<Index>(args)...}
    +
    72  {}
    +
    73 
    +
    74  [[nodiscard]] Type & get() ENTT_NOEXCEPT {
    +
    75  return *this;
    +
    76  }
    +
    77 
    +
    78  [[nodiscard]] const Type & get() const ENTT_NOEXCEPT {
    +
    79  return *this;
    +
    80  }
    +
    81 };
    +
    82 
    +
    83 
    +
    84 }
    +
    85 
    +
    86 
    +
    102 template<typename First, typename Second>
    +
    103 class compressed_pair final:
    +
    104  internal::compressed_pair_element<First, 0u>,
    +
    105  internal::compressed_pair_element<Second, 1u>
    +
    106 {
    +
    107  using first_base = internal::compressed_pair_element<First, 0u>;
    +
    108  using second_base = internal::compressed_pair_element<Second, 1u>;
    +
    109 
    +
    110 public:
    +
    119  template<bool Dummy = true, typename = std::enable_if_t<Dummy && std::is_default_constructible_v<First> && std::is_default_constructible_v<Second>>>
    +
    120  constexpr compressed_pair()
    +
    121  : first_base{},
    +
    122  second_base{}
    +
    123  {}
    +
    124 
    +
    129  constexpr compressed_pair(const compressed_pair &other) = default;
    +
    130 
    +
    135  constexpr compressed_pair(compressed_pair &&other) ENTT_NOEXCEPT = default;
    +
    136 
    +
    144  template<typename Arg, typename Other>
    +
    145  constexpr compressed_pair(Arg &&arg, Other &&other)
    +
    146  : first_base{std::forward<Arg>(arg)},
    +
    147  second_base{std::forward<Other>(other)}
    +
    148  {}
    +
    149 
    +
    157  template<typename... Args, typename... Other>
    +
    158  constexpr compressed_pair(std::piecewise_construct_t, std::tuple<Args...> args, std::tuple<Other...> other)
    +
    159  : first_base{std::move(args), std::index_sequence_for<Args...>{}},
    +
    160  second_base{std::move(other), std::index_sequence_for<Other...>{}}
    +
    161  {}
    +
    162 
    +
    168  constexpr compressed_pair & operator=(const compressed_pair &other) = default;
    +
    169 
    +
    175  constexpr compressed_pair & operator=(compressed_pair &&other) ENTT_NOEXCEPT = default;
    +
    176 
    +
    181  [[nodiscard]] First & first() ENTT_NOEXCEPT {
    +
    182  return static_cast<first_base &>(*this).get();
    +
    183  }
    +
    184 
    +
    186  [[nodiscard]] const First & first() const ENTT_NOEXCEPT {
    +
    187  return static_cast<const first_base &>(*this).get();
    +
    188  }
    +
    189 
    +
    194  [[nodiscard]] Second & second() ENTT_NOEXCEPT {
    +
    195  return static_cast<second_base &>(*this).get();
    +
    196  }
    +
    197 
    +
    199  [[nodiscard]] const Second & second() const ENTT_NOEXCEPT {
    +
    200  return static_cast<const second_base &>(*this).get();
    +
    201  }
    +
    202 
    +
    207  void swap(compressed_pair &other) {
    +
    208  using std::swap;
    +
    209  swap(first(), other.first());
    +
    210  swap(second(), other.second());
    +
    211  }
    +
    212 
    +
    219  template<std::size_t Index>
    +
    220  decltype(auto) get() ENTT_NOEXCEPT {
    +
    221  if constexpr(Index == 0u) {
    +
    222  return first();
    +
    223  } else {
    +
    224  static_assert(Index == 1u, "Index out of bounds");
    +
    225  return second();
    +
    226  }
    +
    227  }
    +
    228 
    +
    230  template<std::size_t Index>
    +
    231  decltype(auto) get() const ENTT_NOEXCEPT {
    +
    232  if constexpr(Index == 0u) {
    +
    233  return first();
    +
    234  } else {
    +
    235  static_assert(Index == 1u, "Index out of bounds");
    +
    236  return second();
    +
    237  }
    +
    238  }
    +
    239 };
    +
    240 
    +
    241 
    +
    247 template<typename Type, typename Other>
    +
    248 compressed_pair(Type &&, Other &&)
    +
    249 -> compressed_pair<std::decay_t<Type>, std::decay_t<Other>>;
    +
    250 
    +
    251 
    +
    259 template<typename First, typename Second>
    + +
    261  lhs.swap(rhs);
    +
    262 }
    +
    263 
    +
    264 
    +
    265 }
    +
    266 
    +
    267 
    +
    268 namespace std {
    +
    269  template<typename First, typename Second>
    +
    270  struct tuple_size<entt::compressed_pair<First, Second>>: integral_constant<size_t, 2u> {};
    +
    271 
    +
    272  template<size_t Index, typename First, typename Second>
    +
    273  struct tuple_element<Index, entt::compressed_pair<First, Second>>: conditional<Index == 0u, First, Second> {
    +
    274  static_assert(Index < 2u, "Index out of bounds");
    +
    275  };
    +
    276 }
    +
    277 
    +
    278 
    +
    279 #endif
    +
    A compressed pair.
    +
    void swap(compressed_pair &other)
    Swaps two compressed pair objects.
    +
    constexpr compressed_pair(const compressed_pair &other)=default
    Copy constructor.
    +
    const Second & second() const
    Returns the second element that a pair stores.
    +
    constexpr compressed_pair(Arg &&arg, Other &&other)
    Constructs a pair from its values.
    +
    constexpr compressed_pair & operator=(const compressed_pair &other)=default
    Copy assignment operator.
    +
    constexpr compressed_pair(compressed_pair &&other)=default
    Move constructor.
    +
    First & first()
    Returns the first element that a pair stores.
    +
    const First & first() const
    Returns the first element that a pair stores.
    +
    constexpr compressed_pair()
    Default constructor, conditionally enabled.
    +
    constexpr compressed_pair & operator=(compressed_pair &&other)=default
    Move assignment operator.
    +
    constexpr compressed_pair(std::piecewise_construct_t, std::tuple< Args... > args, std::tuple< Other... > other)
    Constructs a pair by forwarding the arguments to its parts.
    +
    Second & second()
    Returns the second element that a pair stores.
    +
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    +
    void swap(compressed_pair< First, Second > &lhs, compressed_pair< First, Second > &rhs)
    Swaps two compressed pair objects.
    +
    + + + + diff --git a/config_8h_source.html b/config_8h_source.html index 7e69d1c4d..f930e2d8f 100644 --- a/config_8h_source.html +++ b/config_8h_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/config/config.h Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,68 +74,91 @@ $(function() {
    2 #define ENTT_CONFIG_CONFIG_H
    3 
    4 
    -
    5 #ifndef ENTT_NOEXCEPT
    +
    5 #if defined(__cpp_exceptions) && !defined(ENTT_NOEXCEPTION)
    6 # define ENTT_NOEXCEPT noexcept
    -
    7 #endif
    -
    8 
    -
    9 
    -
    10 #ifndef ENTT_USE_ATOMIC
    -
    11 # define ENTT_MAYBE_ATOMIC(Type) Type
    -
    12 #else
    -
    13 # include <atomic>
    -
    14 # define ENTT_MAYBE_ATOMIC(Type) std::atomic<Type>
    +
    7 # define ENTT_THROW throw
    +
    8 # define ENTT_TRY try
    +
    9 # define ENTT_CATCH catch(...)
    +
    10 #else
    +
    11 # define ENTT_NOEXCEPT
    +
    12 # define ENTT_THROW
    +
    13 # define ENTT_TRY if(true)
    +
    14 # define ENTT_CATCH if(false)
    15 #endif
    16 
    17 
    -
    18 #ifndef ENTT_ID_TYPE
    -
    19 # include <cstdint>
    -
    20 # define ENTT_ID_TYPE std::uint32_t
    -
    21 #endif
    -
    22 
    -
    23 
    -
    24 #ifdef ENTT_PAGE_SIZE
    -
    25 static_assert(ENTT_PAGE_SIZE && ((ENTT_PAGE_SIZE & (ENTT_PAGE_SIZE - 1)) == 0), "ENTT_PAGE_SIZE must be a power of two");
    -
    26 #else
    -
    27 # define ENTT_PAGE_SIZE 4096
    -
    28 #endif
    -
    29 
    -
    30 
    -
    31 #ifdef ENTT_DISABLE_ASSERT
    -
    32 # undef ENTT_ASSERT
    -
    33 # define ENTT_ASSERT(...) (void(0))
    -
    34 #elif !defined ENTT_ASSERT
    -
    35 # include <cassert>
    -
    36 # define ENTT_ASSERT(condition) assert(condition)
    +
    18 #if defined(__cpp_lib_launder) && __cpp_lib_launder >= 201606L
    +
    19 # include <new>
    +
    20 # define ENTT_LAUNDER(expr) std::launder(expr)
    +
    21 #else
    +
    22 # define ENTT_LAUNDER(expr) expr
    +
    23 #endif
    +
    24 
    +
    25 
    +
    26 #ifndef ENTT_USE_ATOMIC
    +
    27 # define ENTT_MAYBE_ATOMIC(Type) Type
    +
    28 #else
    +
    29 # include <atomic>
    +
    30 # define ENTT_MAYBE_ATOMIC(Type) std::atomic<Type>
    +
    31 #endif
    +
    32 
    +
    33 
    +
    34 #ifndef ENTT_ID_TYPE
    +
    35 # include <cstdint>
    +
    36 # define ENTT_ID_TYPE std::uint32_t
    37 #endif
    38 
    39 
    -
    40 #ifndef ENTT_NO_ETO
    -
    41 # include <type_traits>
    -
    42 # define ENTT_IS_EMPTY(Type) std::is_empty<Type>
    -
    43 #else
    -
    44 # include <type_traits>
    -
    45 # define ENTT_IS_EMPTY(Type) std::false_type
    -
    46 #endif
    -
    47 
    -
    48 
    -
    49 #ifndef ENTT_STANDARD_CPP
    -
    50 # if defined __clang__ || defined __GNUC__
    -
    51 # define ENTT_PRETTY_FUNCTION __PRETTY_FUNCTION__
    -
    52 # define ENTT_PRETTY_FUNCTION_PREFIX '='
    -
    53 # define ENTT_PRETTY_FUNCTION_SUFFIX ']'
    -
    54 # elif defined _MSC_VER
    -
    55 # define ENTT_PRETTY_FUNCTION __FUNCSIG__
    -
    56 # define ENTT_PRETTY_FUNCTION_PREFIX '<'
    -
    57 # define ENTT_PRETTY_FUNCTION_SUFFIX '>'
    -
    58 # endif
    -
    59 #endif
    -
    60 
    +
    40 #ifdef ENTT_SPARSE_PAGE
    +
    41  static_assert(ENTT_SPARSE_PAGE && ((ENTT_SPARSE_PAGE & (ENTT_SPARSE_PAGE - 1)) == 0), "ENTT_SPARSE_PAGE must be a power of two");
    +
    42 #else
    +
    43 # define ENTT_SPARSE_PAGE 4096
    +
    44 #endif
    +
    45 
    +
    46 
    +
    47 #ifdef ENTT_PACKED_PAGE
    +
    48 static_assert(ENTT_PACKED_PAGE && ((ENTT_PACKED_PAGE & (ENTT_PACKED_PAGE - 1)) == 0), "ENTT_PACKED_PAGE must be a power of two");
    +
    49 #else
    +
    50 # define ENTT_PACKED_PAGE 1024
    +
    51 #endif
    +
    52 
    +
    53 
    +
    54 #ifdef ENTT_DISABLE_ASSERT
    +
    55 # undef ENTT_ASSERT
    +
    56 # define ENTT_ASSERT(...) (void(0))
    +
    57 #elif !defined ENTT_ASSERT
    +
    58 # include <cassert>
    +
    59 # define ENTT_ASSERT(condition, ...) assert(condition)
    +
    60 #endif
    61 
    -
    62 #endif
    +
    62 
    +
    63 #ifdef ENTT_NO_ETO
    +
    64 # include <type_traits>
    +
    65 # define ENTT_IGNORE_IF_EMPTY std::false_type
    +
    66 #else
    +
    67 # include <type_traits>
    +
    68 # define ENTT_IGNORE_IF_EMPTY std::true_type
    +
    69 #endif
    +
    70 
    +
    71 
    +
    72 #ifndef ENTT_STANDARD_CPP
    +
    73 # if defined __clang__ || defined __GNUC__
    +
    74 # define ENTT_PRETTY_FUNCTION __PRETTY_FUNCTION__
    +
    75 # define ENTT_PRETTY_FUNCTION_PREFIX '='
    +
    76 # define ENTT_PRETTY_FUNCTION_SUFFIX ']'
    +
    77 # elif defined _MSC_VER
    +
    78 # define ENTT_PRETTY_FUNCTION __FUNCSIG__
    +
    79 # define ENTT_PRETTY_FUNCTION_PREFIX '<'
    +
    80 # define ENTT_PRETTY_FUNCTION_SUFFIX '>'
    +
    81 # endif
    +
    82 #endif
    +
    83 
    +
    84 
    +
    85 #endif
    diff --git a/container_8hpp_source.html b/container_8hpp_source.html index 60c84d746..e5413906e 100644 --- a/container_8hpp_source.html +++ b/container_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/container.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,7 +98,7 @@ $(function() {
    32 
    37 template<typename Container>
    38 struct basic_container {
    -
    44  [[nodiscard]] static typename Container::size_type size(const Container &cont) ENTT_NOEXCEPT {
    +
    44  [[nodiscard]] static typename Container::size_type size(const Container &cont) ENTT_NOEXCEPT {
    45  return cont.size();
    46  }
    47 
    @@ -292,44 +292,44 @@ $(function() {
    404 
    405 
    406 #endif
    - -
    entt::basic_container::end
    static Container::iterator end(Container &cont)
    Returns an iterator past the last element of the given container.
    Definition: container.hpp:71
    -
    entt::dynamic_sequence_container::insert
    static std::pair< typename Container::iterator, bool > insert([[maybe_unused]] Container &cont, [[maybe_unused]] typename Container::const_iterator it, [[maybe_unused]] const typename Container::value_type &value)
    Inserts an element at the specified location of the given container.
    Definition: container.hpp:233
    -
    entt::basic_container::size
    static Container::size_type size(const Container &cont) noexcept
    Returns the size of the given container.
    Definition: container.hpp:44
    -
    entt::fixed_sequence_container::clear
    static bool clear(const Container &)
    Does nothing.
    Definition: container.hpp:270
    -
    entt::basic_associative_container
    Basic STL-compatible associative container traits.
    Definition: container.hpp:91
    -
    entt::basic_container::cend
    static Container::const_iterator cend(const Container &cont)
    Returns an iterator past the last element of the given container.
    Definition: container.hpp:80
    -
    entt::basic_sequence_container::get
    static Container::reference get(Container &cont, typename Container::size_type pos)
    Returns a reference to the element at the specified location of the given container (no bounds checki...
    Definition: container.hpp:159
    -
    entt::basic_container::begin
    static Container::iterator begin(Container &cont)
    Returns an iterator to the first element of the given container.
    Definition: container.hpp:53
    -
    entt::dynamic_associative_key_only_container
    STL-compatible dynamic associative key-only container traits.
    Definition: container.hpp:175
    -
    entt::dynamic_sequence_container
    STL-compatible dynamic sequence container traits.
    Definition: container.hpp:212
    -
    entt::fixed_sequence_container::erase
    static std::pair< typename Container::iterator, bool > erase(const Container &, typename Container::const_iterator)
    Does nothing.
    Definition: container.hpp:288
    -
    entt::basic_dynamic_container
    Basic STL-compatible dynamic container traits.
    Definition: container.hpp:115
    -
    entt::fixed_sequence_container
    STL-compatible fixed sequence container traits.
    Definition: container.hpp:257
    -
    entt::basic_sequence_container
    Basic STL-compatible sequence container traits.
    Definition: container.hpp:151
    -
    entt::basic_container
    Basic STL-compatible container traits.
    Definition: container.hpp:38
    -
    entt::basic_associative_container::find
    static Container::iterator find(Container &cont, const typename Container::key_type &key)
    Returns an iterator to the element with key equivalent to the given one, if any.
    Definition: container.hpp:99
    -
    entt::dynamic_associative_key_only_container::insert
    static bool insert([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key)
    Inserts an element into the given container.
    Definition: container.hpp:182
    -
    entt::meta_container_traits< std::unordered_map< Key, Value, Args... >, basic_container, basic_associative_container, basic_dynamic_container, basic_dynamic_associative_container, dynamic_associative_key_value_container >::type
    std::unordered_map< Key, Value, Args... > type
    Type of container.
    Definition: container.hpp:29
    -
    entt::dynamic_associative_key_value_container::insert
    static bool insert([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key, [[maybe_unused]] const typename Container::mapped_type &value)
    Inserts an element (a key/value pair) into the given container.
    Definition: container.hpp:201
    -
    entt::basic_dynamic_associative_container::erase
    static bool erase([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key)
    Removes the specified element from the given container.
    Definition: container.hpp:139
    -
    entt::basic_dynamic_associative_container
    Basic STL-compatible dynamic associative container traits.
    Definition: container.hpp:132
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::dynamic_associative_key_value_container
    STL-compatible dynamic key-value associative container traits.
    Definition: container.hpp:193
    -
    entt::basic_dynamic_container::clear
    static bool clear([[maybe_unused]] Container &cont)
    Clears the content of the given container.
    Definition: container.hpp:121
    -
    entt::dynamic_sequence_container::erase
    static std::pair< typename Container::iterator, bool > erase([[maybe_unused]] Container &cont, [[maybe_unused]] typename Container::const_iterator it)
    Removes the element at the specified location from the given container.
    Definition: container.hpp:246
    -
    entt::meta_associative_container_traits
    Traits class template to be specialized to enable support for meta associative containers.
    Definition: type_traits.hpp:32
    +
    entt::basic_associative_container
    Basic STL-compatible associative container traits.
    Definition: container.hpp:91
    +
    entt::basic_associative_container::find
    static Container::iterator find(Container &cont, const typename Container::key_type &key)
    Returns an iterator to the element with key equivalent to the given one, if any.
    Definition: container.hpp:99
    entt::basic_associative_container::cfind
    static Container::const_iterator cfind(const Container &cont, const typename Container::key_type &key)
    Returns an iterator to the element with key equivalent to the given one, if any.
    Definition: container.hpp:104
    -
    entt::meta_sequence_container_traits
    Traits class template to be specialized to enable support for meta sequence containers.
    Definition: type_traits.hpp:24
    -
    entt::meta_container_traits
    Container traits.
    Definition: container.hpp:27
    +
    entt::basic_container
    Basic STL-compatible container traits.
    Definition: container.hpp:38
    +
    entt::basic_container::size
    static Container::size_type size(const Container &cont)
    Returns the size of the given container.
    Definition: container.hpp:44
    +
    entt::basic_container::end
    static Container::iterator end(Container &cont)
    Returns an iterator past the last element of the given container.
    Definition: container.hpp:71
    +
    entt::basic_container::cend
    static Container::const_iterator cend(const Container &cont)
    Returns an iterator past the last element of the given container.
    Definition: container.hpp:80
    +
    entt::basic_container::begin
    static Container::iterator begin(Container &cont)
    Returns an iterator to the first element of the given container.
    Definition: container.hpp:53
    entt::basic_container::cbegin
    static Container::const_iterator cbegin(const Container &cont)
    Returns an iterator to the first element of the given container.
    Definition: container.hpp:62
    +
    entt::basic_dynamic_associative_container
    Basic STL-compatible dynamic associative container traits.
    Definition: container.hpp:132
    +
    entt::basic_dynamic_associative_container::erase
    static bool erase([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key)
    Removes the specified element from the given container.
    Definition: container.hpp:139
    +
    entt::basic_dynamic_container
    Basic STL-compatible dynamic container traits.
    Definition: container.hpp:115
    +
    entt::basic_dynamic_container::clear
    static bool clear([[maybe_unused]] Container &cont)
    Clears the content of the given container.
    Definition: container.hpp:121
    +
    entt::basic_sequence_container
    Basic STL-compatible sequence container traits.
    Definition: container.hpp:151
    entt::basic_sequence_container::cget
    static Container::const_reference cget(const Container &cont, typename Container::size_type pos)
    Returns a reference to the element at the specified location of the given container (no bounds checki...
    Definition: container.hpp:164
    +
    entt::basic_sequence_container::get
    static Container::reference get(Container &cont, typename Container::size_type pos)
    Returns a reference to the element at the specified location of the given container (no bounds checki...
    Definition: container.hpp:159
    +
    entt::dynamic_associative_key_only_container
    STL-compatible dynamic associative key-only container traits.
    Definition: container.hpp:175
    +
    entt::dynamic_associative_key_only_container::insert
    static bool insert([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key)
    Inserts an element into the given container.
    Definition: container.hpp:182
    +
    entt::dynamic_associative_key_value_container
    STL-compatible dynamic key-value associative container traits.
    Definition: container.hpp:193
    +
    entt::dynamic_associative_key_value_container::insert
    static bool insert([[maybe_unused]] Container &cont, [[maybe_unused]] const typename Container::key_type &key, [[maybe_unused]] const typename Container::mapped_type &value)
    Inserts an element (a key/value pair) into the given container.
    Definition: container.hpp:201
    +
    entt::dynamic_sequence_container
    STL-compatible dynamic sequence container traits.
    Definition: container.hpp:212
    +
    entt::dynamic_sequence_container::insert
    static std::pair< typename Container::iterator, bool > insert([[maybe_unused]] Container &cont, [[maybe_unused]] typename Container::const_iterator it, [[maybe_unused]] const typename Container::value_type &value)
    Inserts an element at the specified location of the given container.
    Definition: container.hpp:233
    entt::dynamic_sequence_container::resize
    static bool resize([[maybe_unused]] Container &cont, [[maybe_unused]] typename Container::size_type sz)
    Resizes the given container to contain the given number of elements.
    Definition: container.hpp:220
    +
    entt::dynamic_sequence_container::erase
    static std::pair< typename Container::iterator, bool > erase([[maybe_unused]] Container &cont, [[maybe_unused]] typename Container::const_iterator it)
    Removes the element at the specified location from the given container.
    Definition: container.hpp:246
    +
    entt::fixed_sequence_container
    STL-compatible fixed sequence container traits.
    Definition: container.hpp:257
    entt::fixed_sequence_container::insert
    static std::pair< typename Container::iterator, bool > insert(const Container &, typename Container::const_iterator, const typename Container::value_type &)
    Does nothing.
    Definition: container.hpp:279
    entt::fixed_sequence_container::resize
    static bool resize(const Container &, typename Container::size_type)
    Does nothing.
    Definition: container.hpp:262
    +
    entt::fixed_sequence_container::erase
    static std::pair< typename Container::iterator, bool > erase(const Container &, typename Container::const_iterator)
    Does nothing.
    Definition: container.hpp:288
    +
    entt::fixed_sequence_container::clear
    static bool clear(const Container &)
    Does nothing.
    Definition: container.hpp:270
    +
    entt::meta_associative_container_traits
    Traits class template to be specialized to enable support for meta associative containers.
    Definition: type_traits.hpp:32
    +
    entt::meta_container_traits
    Container traits.
    Definition: container.hpp:27
    +
    entt::meta_container_traits::type
    Container type
    Type of container.
    Definition: container.hpp:29
    +
    entt::meta_sequence_container_traits
    Traits class template to be specialized to enable support for meta sequence containers.
    Definition: type_traits.hpp:24
    + diff --git a/core_2fwd_8hpp_source.html b/core_2fwd_8hpp_source.html index 900260124..2bd7a360b 100644 --- a/core_2fwd_8hpp_source.html +++ b/core_2fwd_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/fwd.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,27 +81,27 @@ $(function() {
    9 namespace entt {
    10 
    11 
    -
    12 template<std::size_t Len, std::size_t = alignof(typename std::aligned_storage_t<Len + !Len>)>
    +
    12 template<std::size_t Len = sizeof(double[2]), std::size_t = alignof(typename std::aligned_storage_t<Len + !Len>)>
    13 class basic_any;
    14 
    15 
    17 using id_type = ENTT_ID_TYPE;
    18 
    19 
    -
    21 using any = basic_any<sizeof(double[2])>;
    +
    21 using any = basic_any<>;
    22 
    23 
    24 }
    25 
    26 
    27 #endif
    - -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    entt::basic_any<>
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::basic_any< sizeof(double[2])>
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    + diff --git a/core_2type__traits_8hpp_source.html b/core_2type__traits_8hpp_source.html index ba7b5012b..5856a5393 100644 --- a/core_2type__traits_8hpp_source.html +++ b/core_2type__traits_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/type_traits.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,437 +75,454 @@ $(function() {
    3 
    4 
    5 #include <cstddef>
    -
    6 #include <utility>
    +
    6 #include <iterator>
    7 #include <type_traits>
    -
    8 #include "../config/config.h"
    -
    9 #include "fwd.hpp"
    -
    10 
    +
    8 #include <utility>
    +
    9 #include "../config/config.h"
    +
    10 #include "fwd.hpp"
    11 
    -
    12 namespace entt {
    -
    13 
    +
    12 
    +
    13 namespace entt {
    14 
    -
    19 template<std::size_t N>
    -
    20 struct choice_t
    -
    21  // Unfortunately, doxygen cannot parse such a construct.
    -
    23  : choice_t<N-1>
    -
    25 {};
    -
    26 
    +
    15 
    +
    20 template<std::size_t N>
    +
    21 struct choice_t
    +
    22  // Unfortunately, doxygen cannot parse such a construct.
    +
    24  : choice_t<N-1>
    +
    26 {};
    27 
    -
    29 template<>
    -
    30 struct choice_t<0> {};
    -
    31 
    +
    28 
    +
    30 template<>
    +
    31 struct choice_t<0> {};
    32 
    -
    37 template<std::size_t N>
    -
    38 inline constexpr choice_t<N> choice{};
    -
    39 
    +
    33 
    +
    38 template<std::size_t N>
    +
    39 inline constexpr choice_t<N> choice{};
    40 
    -
    49 template<typename Type>
    -
    50 struct type_identity {
    -
    52  using type = Type;
    -
    53 };
    -
    54 
    +
    41 
    +
    50 template<typename Type>
    +
    51 struct type_identity {
    +
    53  using type = Type;
    +
    54 };
    55 
    -
    60 template<typename Type>
    -
    61 using type_identity_t = typename type_identity<Type>::type;
    -
    62 
    +
    56 
    +
    61 template<typename Type>
    +
    62 using type_identity_t = typename type_identity<Type>::type;
    63 
    -
    69 template<typename Type, typename = void>
    -
    70 struct size_of: std::integral_constant<std::size_t, 0u> {};
    -
    71 
    +
    64 
    +
    70 template<typename Type, typename = void>
    +
    71 struct size_of: std::integral_constant<std::size_t, 0u> {};
    72 
    -
    74 template<typename Type>
    -
    75 struct size_of<Type, std::void_t<decltype(sizeof(Type))>>
    -
    76  : std::integral_constant<std::size_t, sizeof(Type)>
    -
    77 {};
    -
    78 
    +
    73 
    +
    75 template<typename Type>
    +
    76 struct size_of<Type, std::void_t<decltype(sizeof(Type))>>
    +
    77  : std::integral_constant<std::size_t, sizeof(Type)>
    +
    78 {};
    79 
    -
    84 template<class Type>
    -
    85 inline constexpr auto size_of_v = size_of<Type>::value;
    -
    86 
    +
    80 
    +
    85 template<class Type>
    +
    86 inline constexpr std::size_t size_of_v = size_of<Type>::value;
    87 
    -
    93 template<typename Type, typename>
    -
    94 using unpack_as_t = Type;
    -
    95 
    +
    88 
    +
    94 template<typename Type, typename>
    +
    95 using unpack_as_t = Type;
    96 
    -
    102 template<auto Value, typename>
    -
    103 inline constexpr auto unpack_as_v = Value;
    -
    104 
    +
    97 
    +
    103 template<auto Value, typename>
    +
    104 inline constexpr auto unpack_as_v = Value;
    105 
    -
    110 template<auto Value>
    -
    111 using integral_constant = std::integral_constant<decltype(Value), Value>;
    -
    112 
    +
    106 
    +
    111 template<auto Value>
    +
    112 using integral_constant = std::integral_constant<decltype(Value), Value>;
    113 
    -
    118 template<id_type Value>
    -
    119 using tag = integral_constant<Value>;
    -
    120 
    +
    114 
    +
    119 template<id_type Value>
    +
    120 using tag = integral_constant<Value>;
    121 
    -
    126 template<typename... Type>
    -
    127 struct type_list {
    -
    129  using type = type_list;
    -
    131  static constexpr auto size = sizeof...(Type);
    -
    132 };
    -
    133 
    +
    122 
    +
    127 template<typename... Type>
    +
    128 struct type_list {
    +
    130  using type = type_list;
    +
    132  static constexpr auto size = sizeof...(Type);
    +
    133 };
    134 
    -
    136 template<std::size_t, typename>
    -
    137 struct type_list_element;
    -
    138 
    +
    135 
    +
    137 template<std::size_t, typename>
    +
    138 struct type_list_element;
    139 
    -
    146 template<std::size_t Index, typename Type, typename... Other>
    -
    147 struct type_list_element<Index, type_list<Type, Other...>>
    -
    148  : type_list_element<Index - 1u, type_list<Other...>>
    -
    149 {};
    -
    150 
    +
    140 
    +
    147 template<std::size_t Index, typename Type, typename... Other>
    +
    148 struct type_list_element<Index, type_list<Type, Other...>>
    +
    149  : type_list_element<Index - 1u, type_list<Other...>>
    +
    150 {};
    151 
    -
    157 template<typename Type, typename... Other>
    -
    158 struct type_list_element<0u, type_list<Type, Other...>> {
    -
    160  using type = Type;
    -
    161 };
    -
    162 
    +
    152 
    +
    158 template<typename Type, typename... Other>
    +
    159 struct type_list_element<0u, type_list<Type, Other...>> {
    +
    161  using type = Type;
    +
    162 };
    163 
    -
    169 template<std::size_t Index, typename List>
    -
    170 using type_list_element_t = typename type_list_element<Index, List>::type;
    -
    171 
    +
    164 
    +
    170 template<std::size_t Index, typename List>
    +
    171 using type_list_element_t = typename type_list_element<Index, List>::type;
    172 
    -
    179 template<typename... Type, typename... Other>
    -
    180 constexpr type_list<Type..., Other...> operator+(type_list<Type...>, type_list<Other...>) { return {}; }
    -
    181 
    +
    173 
    +
    180 template<typename... Type, typename... Other>
    +
    181 constexpr type_list<Type..., Other...> operator+(type_list<Type...>, type_list<Other...>) { return {}; }
    182 
    -
    184 template<typename...>
    -
    185 struct type_list_cat;
    -
    186 
    +
    183 
    +
    185 template<typename...>
    +
    186 struct type_list_cat;
    187 
    -
    189 template<>
    -
    190 struct type_list_cat<> {
    -
    192  using type = type_list<>;
    -
    193 };
    -
    194 
    +
    188 
    +
    190 template<>
    +
    191 struct type_list_cat<> {
    +
    193  using type = type_list<>;
    +
    194 };
    195 
    -
    202 template<typename... Type, typename... Other, typename... List>
    -
    203 struct type_list_cat<type_list<Type...>, type_list<Other...>, List...> {
    -
    205  using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type;
    -
    206 };
    -
    207 
    +
    196 
    +
    203 template<typename... Type, typename... Other, typename... List>
    +
    204 struct type_list_cat<type_list<Type...>, type_list<Other...>, List...> {
    +
    206  using type = typename type_list_cat<type_list<Type..., Other...>, List...>::type;
    +
    207 };
    208 
    -
    213 template<typename... Type>
    -
    214 struct type_list_cat<type_list<Type...>> {
    -
    216  using type = type_list<Type...>;
    -
    217 };
    -
    218 
    +
    209 
    +
    214 template<typename... Type>
    +
    215 struct type_list_cat<type_list<Type...>> {
    +
    217  using type = type_list<Type...>;
    +
    218 };
    219 
    -
    224 template<typename... List>
    -
    225 using type_list_cat_t = typename type_list_cat<List...>::type;
    -
    226 
    +
    220 
    +
    225 template<typename... List>
    +
    226 using type_list_cat_t = typename type_list_cat<List...>::type;
    227 
    -
    229 template<typename>
    -
    230 struct type_list_unique;
    -
    231 
    +
    228 
    +
    230 template<typename>
    +
    231 struct type_list_unique;
    232 
    -
    238 template<typename Type, typename... Other>
    -
    239 struct type_list_unique<type_list<Type, Other...>> {
    -
    241  using type = std::conditional_t<
    -
    242  std::disjunction_v<std::is_same<Type, Other>...>,
    -
    243  typename type_list_unique<type_list<Other...>>::type,
    -
    244  type_list_cat_t<type_list<Type>, typename type_list_unique<type_list<Other...>>::type>
    -
    245  >;
    -
    246 };
    -
    247 
    +
    233 
    +
    239 template<typename Type, typename... Other>
    +
    240 struct type_list_unique<type_list<Type, Other...>> {
    +
    242  using type = std::conditional_t<
    +
    243  std::disjunction_v<std::is_same<Type, Other>...>,
    +
    244  typename type_list_unique<type_list<Other...>>::type,
    +
    245  type_list_cat_t<type_list<Type>, typename type_list_unique<type_list<Other...>>::type>
    +
    246  >;
    +
    247 };
    248 
    -
    250 template<>
    -
    251 struct type_list_unique<type_list<>> {
    -
    253  using type = type_list<>;
    -
    254 };
    -
    255 
    +
    249 
    +
    251 template<>
    +
    252 struct type_list_unique<type_list<>> {
    +
    254  using type = type_list<>;
    +
    255 };
    256 
    -
    261 template<typename Type>
    -
    262 using type_list_unique_t = typename type_list_unique<Type>::type;
    -
    263 
    +
    257 
    +
    262 template<typename Type>
    +
    263 using type_list_unique_t = typename type_list_unique<Type>::type;
    264 
    -
    271 template<typename List, typename Type>
    -
    272 struct type_list_contains;
    -
    273 
    +
    265 
    +
    272 template<typename List, typename Type>
    +
    273 struct type_list_contains;
    274 
    -
    280 template<typename... Type, typename Other>
    -
    281 struct type_list_contains<type_list<Type...>, Other>: std::disjunction<std::is_same<Type, Other>...> {};
    -
    282 
    +
    275 
    +
    281 template<typename... Type, typename Other>
    +
    282 struct type_list_contains<type_list<Type...>, Other>: std::disjunction<std::is_same<Type, Other>...> {};
    283 
    -
    289 template<class List, typename Type>
    -
    290 inline constexpr auto type_list_contains_v = type_list_contains<List, Type>::value;
    -
    291 
    +
    284 
    +
    290 template<class List, typename Type>
    +
    291 inline constexpr bool type_list_contains_v = type_list_contains<List, Type>::value;
    292 
    -
    294 template<typename...>
    -
    295 struct type_list_diff;
    -
    296 
    +
    293 
    +
    295 template<typename...>
    +
    296 struct type_list_diff;
    297 
    -
    303 template<typename... Type, typename... Other>
    -
    304 struct type_list_diff<type_list<Type...>, type_list<Other...>> {
    -
    306  using type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>;
    -
    307 };
    -
    308 
    +
    298 
    +
    304 template<typename... Type, typename... Other>
    +
    305 struct type_list_diff<type_list<Type...>, type_list<Other...>> {
    +
    307  using type = type_list_cat_t<std::conditional_t<type_list_contains_v<type_list<Other...>, Type>, type_list<>, type_list<Type>>...>;
    +
    308 };
    309 
    -
    314 template<typename... List>
    -
    315 using type_list_diff_t = typename type_list_diff<List...>::type;
    -
    316 
    +
    310 
    +
    315 template<typename... List>
    +
    316 using type_list_diff_t = typename type_list_diff<List...>::type;
    317 
    -
    322 template<auto... Value>
    -
    323 struct value_list {
    -
    325  using type = value_list;
    -
    327  static constexpr auto size = sizeof...(Value);
    -
    328 };
    -
    329 
    +
    318 
    +
    323 template<auto... Value>
    +
    324 struct value_list {
    +
    326  using type = value_list;
    +
    328  static constexpr auto size = sizeof...(Value);
    +
    329 };
    330 
    -
    332 template<std::size_t, typename>
    -
    333 struct value_list_element;
    -
    334 
    +
    331 
    +
    333 template<std::size_t, typename>
    +
    334 struct value_list_element;
    335 
    -
    342 template<std::size_t Index, auto Value, auto... Other>
    -
    343 struct value_list_element<Index, value_list<Value, Other...>>
    -
    344  : value_list_element<Index - 1u, value_list<Other...>>
    -
    345 {};
    -
    346 
    +
    336 
    +
    343 template<std::size_t Index, auto Value, auto... Other>
    +
    344 struct value_list_element<Index, value_list<Value, Other...>>
    +
    345  : value_list_element<Index - 1u, value_list<Other...>>
    +
    346 {};
    347 
    -
    353 template<auto Value, auto... Other>
    -
    354 struct value_list_element<0u, value_list<Value, Other...>> {
    -
    356  static constexpr auto value = Value;
    -
    357 };
    -
    358 
    +
    348 
    +
    354 template<auto Value, auto... Other>
    +
    355 struct value_list_element<0u, value_list<Value, Other...>> {
    +
    357  static constexpr auto value = Value;
    +
    358 };
    359 
    -
    365 template<std::size_t Index, typename List>
    -
    366 inline constexpr auto value_list_element_v = value_list_element<Index, List>::value;
    -
    367 
    +
    360 
    +
    366 template<std::size_t Index, typename List>
    +
    367 inline constexpr auto value_list_element_v = value_list_element<Index, List>::value;
    368 
    -
    375 template<auto... Value, auto... Other>
    -
    376 constexpr value_list<Value..., Other...> operator+(value_list<Value...>, value_list<Other...>) { return {}; }
    -
    377 
    +
    369 
    +
    376 template<auto... Value, auto... Other>
    +
    377 constexpr value_list<Value..., Other...> operator+(value_list<Value...>, value_list<Other...>) { return {}; }
    378 
    -
    380 template<typename...>
    -
    381 struct value_list_cat;
    -
    382 
    +
    379 
    +
    381 template<typename...>
    +
    382 struct value_list_cat;
    383 
    -
    385 template<>
    -
    386 struct value_list_cat<> {
    -
    388  using type = value_list<>;
    -
    389 };
    -
    390 
    +
    384 
    +
    386 template<>
    +
    387 struct value_list_cat<> {
    +
    389  using type = value_list<>;
    +
    390 };
    391 
    -
    398 template<auto... Value, auto... Other, typename... List>
    -
    399 struct value_list_cat<value_list<Value...>, value_list<Other...>, List...> {
    -
    401  using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type;
    -
    402 };
    -
    403 
    +
    392 
    +
    399 template<auto... Value, auto... Other, typename... List>
    +
    400 struct value_list_cat<value_list<Value...>, value_list<Other...>, List...> {
    +
    402  using type = typename value_list_cat<value_list<Value..., Other...>, List...>::type;
    +
    403 };
    404 
    -
    409 template<auto... Value>
    -
    410 struct value_list_cat<value_list<Value...>> {
    -
    412  using type = value_list<Value...>;
    -
    413 };
    -
    414 
    +
    405 
    +
    410 template<auto... Value>
    +
    411 struct value_list_cat<value_list<Value...>> {
    +
    413  using type = value_list<Value...>;
    +
    414 };
    415 
    -
    420 template<typename... List>
    -
    421 using value_list_cat_t = typename value_list_cat<List...>::type;
    -
    422 
    +
    416 
    +
    421 template<typename... List>
    +
    422 using value_list_cat_t = typename value_list_cat<List...>::type;
    423 
    -
    430 namespace internal {
    -
    431 
    +
    424 
    +
    431 namespace internal {
    432 
    -
    433 template<typename>
    -
    434 [[nodiscard]] constexpr bool is_equality_comparable(...) { return false; }
    -
    435 
    +
    433 
    +
    434 template<typename>
    +
    435 [[nodiscard]] constexpr bool is_equality_comparable(...) { return false; }
    436 
    -
    437 template<typename Type>
    -
    438 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<0>)
    -
    439 -> decltype(std::declval<Type>() == std::declval<Type>()) { return true; }
    -
    440 
    +
    437 
    +
    438 template<typename Type>
    +
    439 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<0>)
    +
    440 -> decltype(std::declval<Type>() == std::declval<Type>()) { return true; }
    441 
    -
    442 template<typename Type>
    -
    443 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<1>)
    -
    444 -> decltype(std::declval<typename Type::value_type>(), std::declval<Type>() == std::declval<Type>()) {
    -
    445  return is_equality_comparable<typename Type::value_type>(choice<2>);
    -
    446 }
    -
    447 
    -
    448 
    -
    449 template<typename Type>
    -
    450 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<2>)
    -
    451 -> decltype(std::declval<typename Type::mapped_type>(), std::declval<Type>() == std::declval<Type>()) {
    -
    452  return is_equality_comparable<typename Type::key_type>(choice<2>) && is_equality_comparable<typename Type::mapped_type>(choice<2>);
    -
    453 }
    -
    454 
    -
    455 
    -
    456 }
    -
    457 
    -
    458 
    -
    470 template<typename Type, typename = void>
    -
    471 struct is_equality_comparable: std::bool_constant<internal::is_equality_comparable<Type>(choice<2>)> {};
    -
    472 
    -
    473 
    -
    478 template<class Type>
    -
    479 inline constexpr auto is_equality_comparable_v = is_equality_comparable<Type>::value;
    -
    480 
    -
    481 
    -
    483 template<typename, typename>
    -
    484 struct is_applicable: std::false_type {};
    +
    442 
    +
    443 template<typename Type>
    +
    444 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<1>)
    +
    445 -> decltype(std::declval<typename Type::value_type>(), std::declval<Type>() == std::declval<Type>()) {
    +
    446  if constexpr(std::is_same_v<typename Type::value_type, Type>) {
    +
    447  return is_equality_comparable<Type>(choice<0>);
    +
    448  } else {
    +
    449  return is_equality_comparable<typename Type::value_type>(choice<2>);
    +
    450  }
    +
    451 }
    +
    452 
    +
    453 
    +
    454 template<typename Type>
    +
    455 [[nodiscard]] constexpr auto is_equality_comparable(choice_t<2>)
    +
    456 -> decltype(std::declval<typename Type::mapped_type>(), std::declval<Type>() == std::declval<Type>()) {
    +
    457  return is_equality_comparable<typename Type::key_type>(choice<2>) && is_equality_comparable<typename Type::mapped_type>(choice<2>);
    +
    458 }
    +
    459 
    +
    460 
    +
    461 }
    +
    462 
    +
    463 
    +
    475 template<typename Type, typename = void>
    +
    476 struct is_equality_comparable: std::bool_constant<internal::is_equality_comparable<Type>(choice<2>)> {};
    +
    477 
    +
    478 
    +
    483 template<class Type>
    +
    484 inline constexpr bool is_equality_comparable_v = is_equality_comparable<Type>::value;
    485 
    486 
    -
    493 template<typename Func, template<typename...> class Tuple, typename... Args>
    -
    494 struct is_applicable<Func, Tuple<Args...>>: std::is_invocable<Func, Args...> {};
    -
    495 
    -
    496 
    -
    503 template<typename Func, template<typename...> class Tuple, typename... Args>
    -
    504 struct is_applicable<Func, const Tuple<Args...>>: std::is_invocable<Func, Args...> {};
    -
    505 
    -
    506 
    -
    512 template<typename Func, typename Args>
    -
    513 inline constexpr auto is_applicable_v = is_applicable<Func, Args>::value;
    -
    514 
    -
    515 
    -
    517 template<typename, typename, typename>
    -
    518 struct is_applicable_r: std::false_type {};
    +
    488 template<typename, typename>
    +
    489 struct is_applicable: std::false_type {};
    +
    490 
    +
    491 
    +
    498 template<typename Func, template<typename...> class Tuple, typename... Args>
    +
    499 struct is_applicable<Func, Tuple<Args...>>: std::is_invocable<Func, Args...> {};
    +
    500 
    +
    501 
    +
    508 template<typename Func, template<typename...> class Tuple, typename... Args>
    +
    509 struct is_applicable<Func, const Tuple<Args...>>: std::is_invocable<Func, Args...> {};
    +
    510 
    +
    511 
    +
    517 template<typename Func, typename Args>
    +
    518 inline constexpr bool is_applicable_v = is_applicable<Func, Args>::value;
    519 
    520 
    -
    528 template<typename Ret, typename Func, typename... Args>
    -
    529 struct is_applicable_r<Ret, Func, std::tuple<Args...>>: std::is_invocable_r<Ret, Func, Args...> {};
    -
    530 
    -
    531 
    -
    539 template<typename Ret, typename Func, typename Args>
    -
    540 inline constexpr auto is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value;
    -
    541 
    -
    542 
    -
    548 template<typename Type, typename = void>
    -
    549 struct is_complete: std::false_type {};
    -
    550 
    -
    551 
    -
    553 template<typename Type>
    -
    554 struct is_complete<Type, std::void_t<decltype(sizeof(Type))>>: std::true_type {};
    +
    522 template<typename, typename, typename>
    +
    523 struct is_applicable_r: std::false_type {};
    +
    524 
    +
    525 
    +
    533 template<typename Ret, typename Func, typename... Args>
    +
    534 struct is_applicable_r<Ret, Func, std::tuple<Args...>>: std::is_invocable_r<Ret, Func, Args...> {};
    +
    535 
    +
    536 
    +
    544 template<typename Ret, typename Func, typename Args>
    +
    545 inline constexpr bool is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value;
    +
    546 
    +
    547 
    +
    553 template<typename Type, typename = void>
    +
    554 struct is_complete: std::false_type {};
    555 
    556 
    -
    561 template<typename Type>
    -
    562 inline constexpr auto is_complete_v = is_complete<Type>::value;
    -
    563 
    -
    564 
    -
    570 template <typename Type, typename = void>
    -
    571 struct is_std_hashable: std::false_type {};
    -
    572 
    -
    573 
    -
    575 template <typename Type>
    -
    576 struct is_std_hashable<Type, std::enable_if_t<std::is_convertible_v<decltype(std::declval<std::hash<Type>>()(std::declval<Type>())), std::size_t>>>
    -
    577  : std::true_type
    -
    578 {};
    -
    579 
    -
    580 
    -
    585 template <typename Type>
    -
    586 inline constexpr auto is_std_hashable_v = is_std_hashable<Type>::value;
    -
    587 
    -
    588 
    -
    594 template<typename Type, typename = void>
    -
    595 struct is_empty: ENTT_IS_EMPTY(Type) {};
    -
    596 
    -
    597 
    -
    602 template<typename Type>
    -
    603 inline constexpr auto is_empty_v = is_empty<Type>::value;
    -
    604 
    -
    605 
    -
    611 template<typename To, typename From>
    -
    612 struct constness_as {
    -
    614  using type = std::remove_const_t<To>;
    -
    615 };
    +
    558 template<typename Type>
    +
    559 struct is_complete<Type, std::void_t<decltype(sizeof(Type))>>: std::true_type {};
    +
    560 
    +
    561 
    +
    566 template<typename Type>
    +
    567 inline constexpr bool is_complete_v = is_complete<Type>::value;
    +
    568 
    +
    569 
    +
    575 template<typename Type, typename = void>
    +
    576 struct is_iterator: std::false_type {};
    +
    577 
    +
    578 
    +
    580 template<typename Type>
    +
    581 struct is_iterator<Type, std::void_t<typename std::iterator_traits<Type>::iterator_category>>
    +
    582  : std::true_type
    +
    583 {};
    +
    584 
    +
    585 
    +
    590 template<typename Type>
    +
    591 inline constexpr bool is_iterator_v = is_iterator<Type>::value;
    +
    592 
    +
    593 
    +
    600 template<typename Type, typename It, typename = void>
    +
    601 struct is_iterator_type: std::false_type {};
    +
    602 
    +
    603 
    +
    605 template<typename Type, typename It>
    +
    606 struct is_iterator_type<Type, It, std::enable_if_t<is_iterator_v<Type> && std::is_same_v<Type, It>>>
    +
    607  : std::true_type
    +
    608 {};
    +
    609 
    +
    610 
    +
    612 template<typename Type, typename It>
    +
    613 struct is_iterator_type<Type, It, std::enable_if_t<!std::is_same_v<Type, It>, std::void_t<typename It::iterator_type>>>
    +
    614  : is_iterator_type<Type, typename It::iterator_type>
    +
    615 {};
    616 
    617 
    -
    619 template<typename To, typename From>
    -
    620 struct constness_as<To, const From> {
    -
    622  using type = std::add_const_t<To>;
    -
    623 };
    -
    624 
    +
    623 template<typename Type, typename It>
    +
    624 inline constexpr bool is_iterator_type_v = is_iterator_type<Type, It>::value;
    625 
    -
    631 template<typename To, typename From>
    -
    632 using constness_as_t = typename constness_as<To, From>::type;
    -
    633 
    -
    634 
    -
    639 template<typename Member>
    -
    640 class member_class {
    -
    641  static_assert(std::is_member_pointer_v<Member>, "Invalid pointer type to non-static member object or function");
    -
    642 
    -
    643  template<typename Class, typename Ret, typename... Args>
    -
    644  static Class * clazz(Ret(Class:: *)(Args...));
    +
    626 
    +
    632 template<typename To, typename From>
    +
    633 struct constness_as {
    +
    635  using type = std::remove_const_t<To>;
    +
    636 };
    +
    637 
    +
    638 
    +
    640 template<typename To, typename From>
    +
    641 struct constness_as<To, const From> {
    +
    643  using type = std::add_const_t<To>;
    +
    644 };
    645 
    -
    646  template<typename Class, typename Ret, typename... Args>
    -
    647  static Class * clazz(Ret(Class:: *)(Args...) const);
    -
    648 
    -
    649  template<typename Class, typename Type>
    -
    650  static Class * clazz(Type Class:: *);
    -
    651 
    -
    652 public:
    -
    654  using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>;
    -
    655 };
    -
    656 
    -
    657 
    -
    662 template<typename Member>
    -
    663 using member_class_t = typename member_class<Member>::type;
    -
    664 
    -
    665 
    -
    666 }
    -
    667 
    -
    668 
    -
    669 #endif
    - -
    entt::constness_as< To, const From >::type
    std::add_const_t< To > type
    The type resulting from the transcription of the constness.
    Definition: type_traits.hpp:622
    -
    entt::type_list::size
    static constexpr auto size
    Compile-time number of elements in the type list.
    Definition: type_traits.hpp:131
    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    -
    entt::operator+
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    Definition: type_traits.hpp:180
    -
    entt::value_list
    A class to use to push around lists of constant values, nothing more.
    Definition: type_traits.hpp:323
    -
    entt::type_identity
    Identity type trait.
    Definition: type_traits.hpp:50
    -
    entt::type_list_cat_t
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    Definition: type_traits.hpp:225
    -
    entt::member_class::type
    std::remove_pointer_t< decltype(clazz(std::declval< Member >()))> type
    The class of the given non-static member object or function.
    Definition: type_traits.hpp:654
    -
    entt::value_list::size
    static constexpr auto size
    Compile-time number of elements in the value list.
    Definition: type_traits.hpp:327
    -
    entt::size_of_v
    constexpr auto size_of_v
    Helper variable template.
    Definition: type_traits.hpp:85
    -
    entt::value_list_element_v
    constexpr auto value_list_element_v
    Helper type.
    Definition: type_traits.hpp:366
    -
    entt::integral_constant
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.
    Definition: type_traits.hpp:111
    -
    entt::is_std_hashable
    Provides the member constant value to true if a given type is hashable, false otherwise.
    Definition: type_traits.hpp:571
    -
    entt::is_std_hashable_v
    constexpr auto is_std_hashable_v
    Helper variable template.
    Definition: type_traits.hpp:586
    -
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:170
    -
    entt::type_list_unique
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:230
    -
    entt::type_identity::type
    Type type
    Identity type.
    Definition: type_traits.hpp:52
    -
    entt::is_applicable_r_v
    constexpr auto is_applicable_r_v
    Helper variable template.
    Definition: type_traits.hpp:540
    +
    646 
    +
    652 template<typename To, typename From>
    +
    653 using constness_as_t = typename constness_as<To, From>::type;
    +
    654 
    +
    655 
    +
    660 template<typename Member>
    +
    661 class member_class {
    +
    662  static_assert(std::is_member_pointer_v<Member>, "Invalid pointer type to non-static member object or function");
    +
    663 
    +
    664  template<typename Class, typename Ret, typename... Args>
    +
    665  static Class * clazz(Ret(Class:: *)(Args...));
    +
    666 
    +
    667  template<typename Class, typename Ret, typename... Args>
    +
    668  static Class * clazz(Ret(Class:: *)(Args...) const);
    +
    669 
    +
    670  template<typename Class, typename Type>
    +
    671  static Class * clazz(Type Class:: *);
    +
    672 
    +
    673 public:
    +
    675  using type = std::remove_pointer_t<decltype(clazz(std::declval<Member>()))>;
    +
    676 };
    +
    677 
    +
    678 
    +
    683 template<typename Member>
    +
    684 using member_class_t = typename member_class<Member>::type;
    +
    685 
    +
    686 
    +
    687 }
    +
    688 
    +
    689 
    +
    690 #endif
    +
    entt::member_class
    Extracts the class of a non-static member object or function.
    Definition: type_traits.hpp:661
    +
    entt::member_class::type
    std::remove_pointer_t< decltype(clazz(std::declval< Member >()))> type
    The class of the given non-static member object or function.
    Definition: type_traits.hpp:675
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::type_list_cat
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:185
    -
    entt::type_list_unique_t
    typename type_list_unique< Type >::type type_list_unique_t
    Helper type.
    Definition: type_traits.hpp:262
    -
    entt::size_of
    A type-only sizeof wrapper that returns 0 where sizeof complains.
    Definition: type_traits.hpp:70
    -
    entt::type_list_contains_v
    constexpr auto type_list_contains_v
    Helper variable template.
    Definition: type_traits.hpp:290
    -
    entt::unpack_as_t
    Type unpack_as_t
    Using declaration to be used to repeat the same type a number of times equal to the size of a given p...
    Definition: type_traits.hpp:94
    -
    entt::is_complete
    Provides the member constant value to true if a given type is complete, false otherwise.
    Definition: type_traits.hpp:549
    -
    entt::type_list_element
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:137
    -
    entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type
    typename value_list_cat< value_list< Value..., Other... >, List... >::type type
    A value list composed by the values of all the value lists.
    Definition: type_traits.hpp:401
    -
    entt::tag
    integral_constant< Value > tag
    Alias template to facilitate the creation of named values.
    Definition: type_traits.hpp:119
    -
    entt::value_list_cat_t
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.
    Definition: type_traits.hpp:421
    -
    entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type
    type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... > type
    A type list that is the difference between the two type lists.
    Definition: type_traits.hpp:306
    -
    entt::is_applicable_r
    Same as std::is_invocable_r, but with tuples for arguments.
    Definition: type_traits.hpp:518
    -
    entt::is_empty_v
    constexpr auto is_empty_v
    Helper variable template.
    Definition: type_traits.hpp:603
    -
    entt::type_list_diff
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:295
    -
    entt::is_empty
    Provides the member constant value to true if a given type is empty and the empty type optimization i...
    Definition: type_traits.hpp:595
    -
    entt::choice_t< 0 >
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:30
    -
    entt::member_class
    Extracts the class of a non-static member object or function.
    Definition: type_traits.hpp:640
    -
    entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type
    typename type_list_cat< type_list< Type..., Other... >, List... >::type type
    A type list composed by the types of all the type lists.
    Definition: type_traits.hpp:205
    -
    entt::type_identity_t
    typename type_identity< Type >::type type_identity_t
    Helper type.
    Definition: type_traits.hpp:61
    -
    entt::is_equality_comparable
    Provides the member constant value to true if a given type is equality comparable,...
    Definition: type_traits.hpp:471
    -
    entt::choice
    constexpr choice_t< N > choice
    Variable template for the choice trick.
    Definition: type_traits.hpp:38
    -
    entt::is_applicable_v
    constexpr auto is_applicable_v
    Helper variable template.
    Definition: type_traits.hpp:513
    -
    entt::value_list_cat<>
    Concatenates multiple value lists.
    Definition: type_traits.hpp:386
    -
    entt::unpack_as_v
    constexpr auto unpack_as_v
    Helper variable template to be used to repeat the same value a number of times equal to the size of a...
    Definition: type_traits.hpp:103
    -
    entt::choice_t
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:25
    -
    entt::type_list_unique< type_list< Type, Other... > >::type
    std::conditional_t< std::disjunction_v< std::is_same< Type, Other >... >, typename type_list_unique< type_list< Other... > >::type, type_list_cat_t< type_list< Type >, typename type_list_unique< type_list< Other... > >::type > > type
    A type list without duplicate types.
    Definition: type_traits.hpp:245
    -
    entt::constness_as::type
    std::remove_const_t< To > type
    The type resulting from the transcription of the constness.
    Definition: type_traits.hpp:614
    -
    entt::type_list_element< 0u, type_list< Type, Other... > >::type
    Type type
    Searched type.
    Definition: type_traits.hpp:160
    -
    entt::constness_as
    Transcribes the constness of a type to another type.
    Definition: type_traits.hpp:612
    -
    entt::type_list_cat<>
    Concatenates multiple type lists.
    Definition: type_traits.hpp:190
    -
    entt::is_applicable
    Same as std::is_invocable, but with tuples.
    Definition: type_traits.hpp:484
    -
    entt::value_list_element
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:333
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    -
    entt::type_list_contains
    Provides the member constant value to true if a type list contains a given type, false otherwise.
    Definition: type_traits.hpp:272
    -
    entt::type_list_diff_t
    typename type_list_diff< List... >::type type_list_diff_t
    Helper type.
    Definition: type_traits.hpp:315
    -
    entt::is_complete_v
    constexpr auto is_complete_v
    Helper variable template.
    Definition: type_traits.hpp:562
    -
    entt::value_list_cat
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:381
    -
    entt::member_class_t
    typename member_class< Member >::type member_class_t
    Helper type.
    Definition: type_traits.hpp:663
    -
    entt::is_equality_comparable_v
    constexpr auto is_equality_comparable_v
    Helper variable template.
    Definition: type_traits.hpp:479
    +
    entt::is_equality_comparable_v
    constexpr bool is_equality_comparable_v
    Helper variable template.
    Definition: type_traits.hpp:484
    +
    entt::choice
    constexpr choice_t< N > choice
    Variable template for the choice trick.
    Definition: type_traits.hpp:39
    +
    entt::type_identity_t
    typename type_identity< Type >::type type_identity_t
    Helper type.
    Definition: type_traits.hpp:62
    +
    entt::integral_constant
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.
    Definition: type_traits.hpp:112
    +
    entt::value_list_cat_t
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.
    Definition: type_traits.hpp:422
    +
    entt::size_of_v
    constexpr std::size_t size_of_v
    Helper variable template.
    Definition: type_traits.hpp:86
    +
    entt::is_iterator_v
    constexpr bool is_iterator_v
    Helper variable template.
    Definition: type_traits.hpp:591
    +
    entt::unpack_as_v
    constexpr auto unpack_as_v
    Helper variable template to be used to repeat the same value a number of times equal to the size of a...
    Definition: type_traits.hpp:104
    +
    entt::member_class_t
    typename member_class< Member >::type member_class_t
    Helper type.
    Definition: type_traits.hpp:684
    +
    entt::value_list_element_v
    constexpr auto value_list_element_v
    Helper type.
    Definition: type_traits.hpp:367
    +
    entt::is_applicable_v
    constexpr bool is_applicable_v
    Helper variable template.
    Definition: type_traits.hpp:518
    +
    entt::type_list_cat_t
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    Definition: type_traits.hpp:226
    +
    entt::unpack_as_t
    Type unpack_as_t
    Using declaration to be used to repeat the same type a number of times equal to the size of a given p...
    Definition: type_traits.hpp:95
    +
    entt::operator+
    constexpr type_list< Type..., Other... > operator+(type_list< Type... >, type_list< Other... >)
    Concatenates multiple type lists.
    Definition: type_traits.hpp:181
    +
    entt::type_list_unique_t
    typename type_list_unique< Type >::type type_list_unique_t
    Helper type.
    Definition: type_traits.hpp:263
    +
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:653
    +
    entt::is_complete_v
    constexpr bool is_complete_v
    Helper variable template.
    Definition: type_traits.hpp:567
    +
    entt::type_list_contains_v
    constexpr bool type_list_contains_v
    Helper variable template.
    Definition: type_traits.hpp:291
    +
    entt::tag
    integral_constant< Value > tag
    Alias template to facilitate the creation of named values.
    Definition: type_traits.hpp:120
    +
    entt::is_iterator_type_v
    constexpr bool is_iterator_type_v
    Helper variable template.
    Definition: type_traits.hpp:624
    +
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:171
    +
    entt::is_applicable_r_v
    constexpr bool is_applicable_r_v
    Helper variable template.
    Definition: type_traits.hpp:545
    +
    entt::type_list_diff_t
    typename type_list_diff< List... >::type type_list_diff_t
    Helper type.
    Definition: type_traits.hpp:316
    +
    entt::choice_t< 0 >
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:31
    +
    entt::choice_t
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:26
    +
    entt::constness_as< To, const From >::type
    std::add_const_t< To > type
    The type resulting from the transcription of the constness.
    Definition: type_traits.hpp:643
    +
    entt::constness_as
    Transcribes the constness of a type to another type.
    Definition: type_traits.hpp:633
    +
    entt::constness_as::type
    std::remove_const_t< To > type
    The type resulting from the transcription of the constness.
    Definition: type_traits.hpp:635
    +
    entt::is_applicable_r
    Same as std::is_invocable_r, but with tuples for arguments.
    Definition: type_traits.hpp:523
    +
    entt::is_applicable
    Same as std::is_invocable, but with tuples.
    Definition: type_traits.hpp:489
    +
    entt::is_complete
    Provides the member constant value to true if a given type is complete, false otherwise.
    Definition: type_traits.hpp:554
    +
    entt::is_equality_comparable
    Provides the member constant value to true if a given type is equality comparable,...
    Definition: type_traits.hpp:476
    +
    entt::is_iterator_type
    Provides the member constant value to true if a given type is of the required iterator type,...
    Definition: type_traits.hpp:601
    +
    entt::is_iterator
    Provides the member constant value to true if a given type is an iterator, false otherwise.
    Definition: type_traits.hpp:576
    +
    entt::size_of
    A type-only sizeof wrapper that returns 0 where sizeof complains.
    Definition: type_traits.hpp:71
    +
    entt::type_identity
    Identity type trait.
    Definition: type_traits.hpp:51
    +
    entt::type_identity::type
    Type type
    Identity type.
    Definition: type_traits.hpp:53
    +
    entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... >::type
    typename type_list_cat< type_list< Type..., Other... >, List... >::type type
    A type list composed by the types of all the type lists.
    Definition: type_traits.hpp:206
    +
    entt::type_list_cat<>
    Concatenates multiple type lists.
    Definition: type_traits.hpp:191
    +
    entt::type_list_cat
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:186
    +
    entt::type_list_contains
    Provides the member constant value to true if a type list contains a given type, false otherwise.
    Definition: type_traits.hpp:273
    +
    entt::type_list_diff< type_list< Type... >, type_list< Other... > >::type
    type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... > type
    A type list that is the difference between the two type lists.
    Definition: type_traits.hpp:307
    +
    entt::type_list_diff
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:296
    +
    entt::type_list_element< 0u, type_list< Type, Other... > >::type
    Type type
    Searched type.
    Definition: type_traits.hpp:161
    +
    entt::type_list_element
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:138
    +
    entt::type_list_unique< type_list< Type, Other... > >::type
    std::conditional_t< std::disjunction_v< std::is_same< Type, Other >... >, typename type_list_unique< type_list< Other... > >::type, type_list_cat_t< type_list< Type >, typename type_list_unique< type_list< Other... > >::type > > type
    A type list without duplicate types.
    Definition: type_traits.hpp:246
    +
    entt::type_list_unique
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:231
    +
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:128
    +
    entt::type_list::size
    static constexpr auto size
    Compile-time number of elements in the type list.
    Definition: type_traits.hpp:132
    +
    entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... >::type
    typename value_list_cat< value_list< Value..., Other... >, List... >::type type
    A value list composed by the values of all the value lists.
    Definition: type_traits.hpp:402
    +
    entt::value_list_cat<>
    Concatenates multiple value lists.
    Definition: type_traits.hpp:387
    +
    entt::value_list_cat
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:382
    +
    entt::value_list_element
    Primary template isn't defined on purpose.
    Definition: type_traits.hpp:334
    +
    entt::value_list
    A class to use to push around lists of constant values, nothing more.
    Definition: type_traits.hpp:324
    +
    entt::value_list::size
    static constexpr auto size
    Compile-time number of elements in the value list.
    Definition: type_traits.hpp:328
    + diff --git a/core_2utility_8hpp_source.html b/core_2utility_8hpp_source.html index 69c55de81..8419cb88b 100644 --- a/core_2utility_8hpp_source.html +++ b/core_2utility_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/utility.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -83,18 +83,18 @@ $(function() {
    11 
    13 struct identity {
    20  template<class Type>
    -
    21  [[nodiscard]] constexpr Type && operator()(Type &&value) const ENTT_NOEXCEPT {
    +
    21  [[nodiscard]] constexpr Type && operator()(Type &&value) const ENTT_NOEXCEPT {
    22  return std::forward<Type>(value);
    23  }
    24 };
    25 
    26 
    34 template<typename Type, typename Class>
    -
    35 [[nodiscard]] constexpr auto overload(Type Class:: *member) ENTT_NOEXCEPT { return member; }
    +
    35 [[nodiscard]] constexpr auto overload(Type Class:: *member) ENTT_NOEXCEPT { return member; }
    36 
    37 
    44 template<typename Func>
    -
    45 [[nodiscard]] constexpr auto overload(Func *func) ENTT_NOEXCEPT { return func; }
    +
    45 [[nodiscard]] constexpr auto overload(Func *func) ENTT_NOEXCEPT { return func; }
    46 
    47 
    52 template<class... Func>
    @@ -104,46 +104,47 @@ $(function() {
    56 
    57 
    62 template<class... Func>
    -
    63 overloaded(Func...) -> overloaded<Func...>;
    -
    64 
    +
    63 overloaded(Func...)
    +
    64 -> overloaded<Func...>;
    65 
    -
    70 template<class Func>
    -
    71 struct y_combinator {
    -
    76  y_combinator(Func recursive):
    -
    77  func{std::move(recursive)}
    -
    78  {}
    -
    79 
    -
    86  template <class... Args>
    -
    87  decltype(auto) operator()(Args &&... args) const {
    -
    88  return func(*this, std::forward<Args>(args)...);
    -
    89  }
    -
    90 
    -
    92  template <class... Args>
    -
    93  decltype(auto) operator()(Args &&... args) {
    -
    94  return func(*this, std::forward<Args>(args)...);
    -
    95  }
    -
    96 
    -
    97 private:
    -
    98  Func func;
    -
    99 };
    -
    100 
    +
    66 
    +
    71 template<class Func>
    +
    72 struct y_combinator {
    +
    77  y_combinator(Func recursive):
    +
    78  func{std::move(recursive)}
    +
    79  {}
    +
    80 
    +
    87  template <class... Args>
    +
    88  decltype(auto) operator()(Args &&... args) const {
    +
    89  return func(*this, std::forward<Args>(args)...);
    +
    90  }
    +
    91 
    +
    93  template <class... Args>
    +
    94  decltype(auto) operator()(Args &&... args) {
    +
    95  return func(*this, std::forward<Args>(args)...);
    +
    96  }
    +
    97 
    +
    98 private:
    +
    99  Func func;
    +
    100 };
    101 
    -
    102 }
    -
    103 
    +
    102 
    +
    103 }
    104 
    -
    105 #endif
    - -
    entt::identity
    Identity function object (waiting for C++20).
    Definition: utility.hpp:13
    +
    105 
    +
    106 #endif
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::y_combinator
    Basic implementation of a y-combinator.
    Definition: utility.hpp:71
    -
    entt::identity::operator()
    constexpr Type && operator()(Type &&value) const noexcept
    Returns its argument unchanged.
    Definition: utility.hpp:21
    -
    entt::overload
    constexpr auto overload(Type Class::*member) noexcept
    Constant utility to disambiguate overloaded members of a class.
    Definition: utility.hpp:35
    entt::overloaded
    overloaded(Func...) -> overloaded< Func... >
    Deduction guide.
    +
    entt::overload
    constexpr auto overload(Type Class::*member)
    Constant utility to disambiguate overloaded members of a class.
    Definition: utility.hpp:35
    +
    entt::identity
    Identity function object (waiting for C++20).
    Definition: utility.hpp:13
    +
    entt::identity::operator()
    constexpr Type && operator()(Type &&value) const
    Returns its argument unchanged.
    Definition: utility.hpp:21
    entt::overloaded
    Helper type for visitors.
    Definition: utility.hpp:53
    -
    entt::y_combinator::y_combinator
    y_combinator(Func recursive)
    Constructs a y-combinator from a given function.
    Definition: utility.hpp:76
    +
    entt::y_combinator
    Basic implementation of a y-combinator.
    Definition: utility.hpp:72
    +
    entt::y_combinator::y_combinator
    y_combinator(Func recursive)
    Constructs a y-combinator from a given function.
    Definition: utility.hpp:77
    + diff --git a/ctx_8hpp_source.html b/ctx_8hpp_source.html index 812e05fb9..6ee9e4bdc 100644 --- a/ctx_8hpp_source.html +++ b/ctx_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/ctx.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -108,7 +108,7 @@ $(function() {
    42 
    43 
    51 struct meta_ctx {
    -
    56  static void bind(meta_ctx other) ENTT_NOEXCEPT {
    +
    56  static void bind(meta_ctx other) ENTT_NOEXCEPT {
    57  internal::meta_context::global() = other.ctx;
    58  }
    59 
    @@ -121,13 +121,13 @@ $(function() {
    66 
    67 
    68 #endif
    - -
    entt::meta_ctx::bind
    static void bind(meta_ctx other) noexcept
    Binds the meta system to a given context.
    Definition: ctx.hpp:56
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::meta_ctx
    Opaque container for a meta context.
    Definition: ctx.hpp:51
    +
    entt::meta_ctx::bind
    static void bind(meta_ctx other)
    Binds the meta system to a given context.
    Definition: ctx.hpp:56
    + diff --git a/delegate_8hpp_source.html b/delegate_8hpp_source.html index df8c447fe..a3b552e25 100644 --- a/delegate_8hpp_source.html +++ b/delegate_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/signal/delegate.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -167,26 +167,26 @@ $(function() {
    129  using type = Ret(Args...);
    131  using result_type = Ret;
    132 
    -
    134  delegate() ENTT_NOEXCEPT
    +
    134  delegate() ENTT_NOEXCEPT
    135  : fn{nullptr}, data{nullptr}
    136  {}
    137 
    143  template<auto Candidate>
    -
    144  delegate(connect_arg_t<Candidate>) ENTT_NOEXCEPT {
    +
    144  delegate(connect_arg_t<Candidate>) ENTT_NOEXCEPT {
    145  connect<Candidate>();
    146  }
    147 
    155  template<auto Candidate, typename Type>
    -
    156  delegate(connect_arg_t<Candidate>, Type &&value_or_instance) ENTT_NOEXCEPT {
    +
    156  delegate(connect_arg_t<Candidate>, Type &&value_or_instance) ENTT_NOEXCEPT {
    157  connect<Candidate>(std::forward<Type>(value_or_instance));
    158  }
    159 
    -
    166  delegate(function_type *function, const void *payload = nullptr) ENTT_NOEXCEPT {
    +
    166  delegate(function_type *function, const void *payload = nullptr) ENTT_NOEXCEPT {
    167  connect(function, payload);
    168  }
    169 
    174  template<auto Candidate>
    -
    175  void connect() ENTT_NOEXCEPT {
    +
    175  void connect() ENTT_NOEXCEPT {
    176  data = nullptr;
    177 
    178  if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Args...>) {
    @@ -201,7 +201,7 @@ $(function() {
    187  }
    188 
    204  template<auto Candidate, typename Type>
    -
    205  void connect(Type &value_or_instance) ENTT_NOEXCEPT {
    +
    205  void connect(Type &value_or_instance) ENTT_NOEXCEPT {
    206  data = &value_or_instance;
    207 
    208  if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type &, Args...>) {
    @@ -215,7 +215,7 @@ $(function() {
    216  }
    217 
    228  template<auto Candidate, typename Type>
    -
    229  void connect(Type *value_or_instance) ENTT_NOEXCEPT {
    +
    229  void connect(Type *value_or_instance) ENTT_NOEXCEPT {
    230  data = value_or_instance;
    231 
    232  if constexpr(std::is_invocable_r_v<Ret, decltype(Candidate), Type *, Args...>) {
    @@ -228,31 +228,31 @@ $(function() {
    239  }
    240  }
    241 
    -
    255  void connect(function_type *function, const void *payload = nullptr) ENTT_NOEXCEPT {
    +
    255  void connect(function_type *function, const void *payload = nullptr) ENTT_NOEXCEPT {
    256  fn = function;
    257  data = payload;
    258  }
    259 
    -
    265  void reset() ENTT_NOEXCEPT {
    +
    265  void reset() ENTT_NOEXCEPT {
    266  fn = nullptr;
    267  data = nullptr;
    268  }
    269 
    -
    274  [[nodiscard]] const void * instance() const ENTT_NOEXCEPT {
    +
    274  [[nodiscard]] const void * instance() const ENTT_NOEXCEPT {
    275  return data;
    276  }
    277 
    290  Ret operator()(Args... args) const {
    -
    291  ENTT_ASSERT(static_cast<bool>(*this));
    +
    291  ENTT_ASSERT(static_cast<bool>(*this), "Uninitialized delegate");
    292  return fn(data, std::forward<Args>(args)...);
    293  }
    294 
    -
    299  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    299  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    300  // no need to test also data
    301  return !(fn == nullptr);
    302  }
    303 
    -
    309  [[nodiscard]] bool operator==(const delegate<Ret(Args...)> &other) const ENTT_NOEXCEPT {
    +
    309  [[nodiscard]] bool operator==(const delegate<Ret(Args...)> &other) const ENTT_NOEXCEPT {
    310  return fn == other.fn && data == other.data;
    311  }
    312 
    @@ -263,23 +263,23 @@ $(function() {
    317 
    318 
    327 template<typename Ret, typename... Args>
    -
    328 [[nodiscard]] bool operator!=(const delegate<Ret(Args...)> &lhs, const delegate<Ret(Args...)> &rhs) ENTT_NOEXCEPT {
    +
    328 [[nodiscard]] bool operator!=(const delegate<Ret(Args...)> &lhs, const delegate<Ret(Args...)> &rhs) ENTT_NOEXCEPT {
    329  return !(lhs == rhs);
    330 }
    331 
    332 
    337 template<auto Candidate>
    -
    338 delegate(connect_arg_t<Candidate>) ENTT_NOEXCEPT
    +
    338 delegate(connect_arg_t<Candidate>)
    339 -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate)>>>;
    340 
    341 
    347 template<auto Candidate, typename Type>
    -
    348 delegate(connect_arg_t<Candidate>, Type &&) ENTT_NOEXCEPT
    +
    348 delegate(connect_arg_t<Candidate>, Type &&)
    349 -> delegate<std::remove_pointer_t<internal::function_pointer_t<decltype(Candidate), Type>>>;
    350 
    351 
    -
    357 template<typename Ret, typename... Args>
    -
    358 delegate(Ret(*)(const void *, Args...), const void * = nullptr) ENTT_NOEXCEPT
    +
    357 template<typename Ret, typename... Args>
    +
    358 delegate(Ret(*)(const void *, Args...), const void * = nullptr)
    359 -> delegate<Ret(Args...)>;
    360 
    361 
    @@ -287,34 +287,34 @@ $(function() {
    363 
    364 
    365 #endif
    - -
    entt::delegate< Ret(Args...)>::connect
    void connect(function_type *function, const void *payload=nullptr) noexcept
    Connects an user defined function with optional payload to a delegate.
    Definition: delegate.hpp:255
    -
    entt::delegate< Ret(Args...)>::type
    Ret(Args...) type
    Function type of the delegate.
    Definition: delegate.hpp:129
    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    -
    entt::delegate< Ret(Args...)>::delegate
    delegate() noexcept
    Default constructor.
    Definition: delegate.hpp:134
    -
    entt::delegate< Ret(Args...)>::reset
    void reset() noexcept
    Resets a delegate.
    Definition: delegate.hpp:265
    entt::delegate< Ret(Args...)>::operator()
    Ret operator()(Args... args) const
    Triggers a delegate.
    Definition: delegate.hpp:290
    +
    entt::delegate< Ret(Args...)>::instance
    const void * instance() const
    Returns the instance or the payload linked to a delegate, if any.
    Definition: delegate.hpp:274
    entt::delegate< Ret(Args...)>::function_type
    Ret(const void *, Args...) function_type
    Function type of the contained target.
    Definition: delegate.hpp:127
    -
    entt::connect_arg
    constexpr connect_arg_t< Func > connect_arg
    Constant of type connect_arg_t used to disambiguate calls.
    Definition: delegate.hpp:72
    -
    entt::delegate< Ret(Args...)>::connect
    void connect(Type &value_or_instance) noexcept
    Connects a free function with payload or a bound member to a delegate.
    Definition: delegate.hpp:205
    -
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:170
    -
    entt::delegate
    delegate(connect_arg_t< Candidate >) noexcept -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
    Deduction guide.
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::delegate< Ret(Args...)>::reset
    void reset()
    Resets a delegate.
    Definition: delegate.hpp:265
    +
    entt::delegate< Ret(Args...)>::delegate
    delegate()
    Default constructor.
    Definition: delegate.hpp:134
    +
    entt::delegate< Ret(Args...)>::delegate
    delegate(connect_arg_t< Candidate >)
    Constructs a delegate and connects a free function or an unbound member.
    Definition: delegate.hpp:144
    +
    entt::delegate< Ret(Args...)>::connect
    void connect(function_type *function, const void *payload=nullptr)
    Connects an user defined function with optional payload to a delegate.
    Definition: delegate.hpp:255
    +
    entt::delegate< Ret(Args...)>::delegate
    delegate(connect_arg_t< Candidate >, Type &&value_or_instance)
    Constructs a delegate and connects a free function with payload or a bound member.
    Definition: delegate.hpp:156
    entt::delegate< Ret(Args...)>::result_type
    Ret result_type
    Return type of the delegate.
    Definition: delegate.hpp:131
    -
    entt::delegate< Ret(Args...)>::operator==
    bool operator==(const delegate< Ret(Args...)> &other) const noexcept
    Compares the contents of two delegates.
    Definition: delegate.hpp:309
    -
    entt::delegate< Ret(Args...)>::delegate
    delegate(function_type *function, const void *payload=nullptr) noexcept
    Constructs a delegate and connects an user defined function with optional payload.
    Definition: delegate.hpp:166
    -
    entt::delegate< Ret(Args...)>::connect
    void connect(Type *value_or_instance) noexcept
    Connects a free function with payload or a bound member to a delegate.
    Definition: delegate.hpp:229
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::connect_arg_t
    Used to wrap a function or a member of a specified type.
    Definition: delegate.hpp:67
    -
    entt::delegate< Ret(Args...)>::connect
    void connect() noexcept
    Connects a free function or an unbound member to a delegate.
    Definition: delegate.hpp:175
    -
    entt::delegate< Ret(Args...)>::delegate
    delegate(connect_arg_t< Candidate >) noexcept
    Constructs a delegate and connects a free function or an unbound member.
    Definition: delegate.hpp:144
    -
    entt::delegate< Ret(Args...)>::delegate
    delegate(connect_arg_t< Candidate >, Type &&value_or_instance) noexcept
    Constructs a delegate and connects a free function with payload or a bound member.
    Definition: delegate.hpp:156
    +
    entt::delegate< Ret(Args...)>::connect
    void connect(Type *value_or_instance)
    Connects a free function with payload or a bound member to a delegate.
    Definition: delegate.hpp:229
    +
    entt::delegate< Ret(Args...)>::operator==
    bool operator==(const delegate< Ret(Args...)> &other) const
    Compares the contents of two delegates.
    Definition: delegate.hpp:309
    +
    entt::delegate< Ret(Args...)>::connect
    void connect()
    Connects a free function or an unbound member to a delegate.
    Definition: delegate.hpp:175
    +
    entt::delegate< Ret(Args...)>::type
    Ret(Args...) type
    Function type of the delegate.
    Definition: delegate.hpp:129
    +
    entt::delegate< Ret(Args...)>::delegate
    delegate(function_type *function, const void *payload=nullptr)
    Constructs a delegate and connects an user defined function with optional payload.
    Definition: delegate.hpp:166
    +
    entt::delegate< Ret(Args...)>::connect
    void connect(Type &value_or_instance)
    Connects a free function with payload or a bound member to a delegate.
    Definition: delegate.hpp:205
    entt::delegate
    Basic delegate implementation.
    Definition: delegate.hpp:82
    -
    entt::delegate< Ret(Args...)>::instance
    const void * instance() const noexcept
    Returns the instance or the payload linked to a delegate, if any.
    Definition: delegate.hpp:274
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:653
    +
    entt::delegate
    delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
    Deduction guide.
    +
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:171
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::connect_arg
    constexpr connect_arg_t< Func > connect_arg
    Constant of type connect_arg_t used to disambiguate calls.
    Definition: delegate.hpp:72
    +
    entt::connect_arg_t
    Used to wrap a function or a member of a specified type.
    Definition: delegate.hpp:67
    +
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:128
    + diff --git a/dir_49e56c817e5e54854c35e136979f97ca.html b/dir_49e56c817e5e54854c35e136979f97ca.html index a99a0b97f..af87f493b 100644 --- a/dir_49e56c817e5e54854c35e136979f97ca.html +++ b/dir_49e56c817e5e54854c35e136979f97ca.html @@ -3,7 +3,7 @@ - + EnTT: docs Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_66e9674e8206a335795995fa32a03c91.html b/dir_66e9674e8206a335795995fa32a03c91.html index 4dfc58912..5accbae70 100644 --- a/dir_66e9674e8206a335795995fa32a03c91.html +++ b/dir_66e9674e8206a335795995fa32a03c91.html @@ -3,7 +3,7 @@ - + EnTT: src/entt Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ Directories diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 0d346fd06..89b0dd023 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -3,7 +3,7 @@ - + EnTT: src Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ Directories diff --git a/dir_721f6154dba3c88bcdead5f446bce319.html b/dir_721f6154dba3c88bcdead5f446bce319.html index 46a2a2e57..b1d866f0e 100644 --- a/dir_721f6154dba3c88bcdead5f446bce319.html +++ b/dir_721f6154dba3c88bcdead5f446bce319.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/process Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_7929ab29d3f740cf727ccbd263321562.html b/dir_7929ab29d3f740cf727ccbd263321562.html index 722ce042f..e96b8e2f7 100644 --- a/dir_7929ab29d3f740cf727ccbd263321562.html +++ b/dir_7929ab29d3f740cf727ccbd263321562.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/config Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_84cd6c110d68697bc23812bee21a8ed6.html b/dir_84cd6c110d68697bc23812bee21a8ed6.html index ad0142a21..295f429dd 100644 --- a/dir_84cd6c110d68697bc23812bee21a8ed6.html +++ b/dir_84cd6c110d68697bc23812bee21a8ed6.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/poly Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html index a9a635393..0f5c1ffb4 100644 --- a/dir_85dbee8884f1b3a817fa7eff8dff73ec.html +++ b/dir_85dbee8884f1b3a817fa7eff8dff73ec.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/resource Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_a53318306f6ac0f7fe657839abd543ab.html b/dir_a53318306f6ac0f7fe657839abd543ab.html index 99cd59771..f456df0c5 100644 --- a/dir_a53318306f6ac0f7fe657839abd543ab.html +++ b/dir_a53318306f6ac0f7fe657839abd543ab.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/signal Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_b64489a1e8130d5ebf6d86d282f500f0.html b/dir_b64489a1e8130d5ebf6d86d282f500f0.html index a050207f2..8ac8488d1 100644 --- a/dir_b64489a1e8130d5ebf6d86d282f500f0.html +++ b/dir_b64489a1e8130d5ebf6d86d282f500f0.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/locator Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_c183064df1291357db1d38c637c6e87c.html b/dir_c183064df1291357db1d38c637c6e87c.html index f71336bb6..d45ffe76e 100644 --- a/dir_c183064df1291357db1d38c637c6e87c.html +++ b/dir_c183064df1291357db1d38c637c6e87c.html @@ -3,7 +3,7 @@ - + EnTT: docs/md Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_c5715f7ee899854a669b87bbaa642de0.html b/dir_c5715f7ee899854a669b87bbaa642de0.html index e79eade88..2915a2a41 100644 --- a/dir_c5715f7ee899854a669b87bbaa642de0.html +++ b/dir_c5715f7ee899854a669b87bbaa642de0.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_caf434cd0cc634da803ab3b40811fcd6.html b/dir_caf434cd0cc634da803ab3b40811fcd6.html index 93be8ad0d..b0e6ae7ae 100644 --- a/dir_caf434cd0cc634da803ab3b40811fcd6.html +++ b/dir_caf434cd0cc634da803ab3b40811fcd6.html @@ -3,7 +3,7 @@ - + EnTT: docs/dox Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_de8f4e6ba3f54a2a21309f742e93a373.html b/dir_de8f4e6ba3f54a2a21309f742e93a373.html index 794bc9976..6958d2695 100644 --- a/dir_de8f4e6ba3f54a2a21309f742e93a373.html +++ b/dir_de8f4e6ba3f54a2a21309f742e93a373.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html index 8c2daef43..754a5fbc3 100644 --- a/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html +++ b/dir_e3a7bb56c55e5c2286e2fe96e197d4f5.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dir_fbf131c40613b6c97d74b601844612e4.html b/dir_fbf131c40613b6c97d74b601844612e4.html index 51a429357..3dc5f89ee 100644 --- a/dir_fbf131c40613b6c97d74b601844612e4.html +++ b/dir_fbf131c40613b6c97d74b601844612e4.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/platform Directory Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() { diff --git a/dispatcher_8hpp_source.html b/dispatcher_8hpp_source.html index 2ff4b31a2..c6b7229e4 100644 --- a/dispatcher_8hpp_source.html +++ b/dispatcher_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/signal/dispatcher.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -147,7 +147,7 @@ $(function() {
    87 
    88  template<typename Event>
    89  [[nodiscard]] pool_handler<Event> & assure() {
    -
    90  const auto index = type_seq<Event>::value();
    +
    90  const auto index = type_seq<Event>::value();
    91 
    92  if(!(index < pools.size())) {
    93  pools.resize(std::size_t(index)+1u);
    @@ -241,28 +241,28 @@ $(function() {
    275 
    276 
    277 #endif
    - -
    entt::type_seq::value
    static id_type value() noexcept
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    -
    entt::dispatcher::update
    void update() const
    Delivers all the pending events.
    Definition: dispatcher.hpp:261
    -
    entt::dispatcher::dispatcher
    dispatcher()=default
    Default constructor.
    -
    entt::dispatcher::sink
    auto sink()
    Returns a sink object for the given event.
    Definition: dispatcher.hpp:131
    -
    entt::sigh
    Unmanaged signal handler.
    Definition: fwd.hpp:30
    -
    entt::dispatcher::disconnect
    void disconnect(Type &value_or_instance)
    Utility function to disconnect everything related to a given value or instance from a dispatcher.
    Definition: dispatcher.hpp:200
    -
    entt::dispatcher::dispatcher
    dispatcher(dispatcher &&)=default
    Default move constructor.
    -
    entt::dispatcher::enqueue
    void enqueue(Event &&event)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:189
    -
    entt::dispatcher::enqueue
    void enqueue(Args &&... args)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:175
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::dispatcher::operator=
    dispatcher & operator=(dispatcher &&)=default
    Default move assignment operator.
    -
    entt::dispatcher::trigger
    void trigger(Args &&... args)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:146
    entt::dispatcher
    Basic dispatcher implementation.
    Definition: dispatcher.hpp:31
    -
    entt::dispatcher::clear
    void clear()
    Discards all the events queued so far.
    Definition: dispatcher.hpp:228
    -
    entt::dispatcher::trigger
    void trigger(Event &&event)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:160
    -
    entt::sink
    Sink class.
    Definition: fwd.hpp:26
    -
    entt::dispatcher::update
    void update()
    Delivers all the pending events of the given type.
    Definition: dispatcher.hpp:250
    +
    entt::dispatcher::dispatcher
    dispatcher(dispatcher &&)=default
    Default move constructor.
    +
    entt::dispatcher::sink
    auto sink()
    Returns a sink object for the given event.
    Definition: dispatcher.hpp:131
    entt::dispatcher::disconnect
    void disconnect(Type *value_or_instance)
    Utility function to disconnect everything related to a given value or instance from a dispatcher.
    Definition: dispatcher.hpp:211
    +
    entt::dispatcher::trigger
    void trigger(Event &&event)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:160
    +
    entt::dispatcher::enqueue
    void enqueue(Event &&event)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:189
    +
    entt::dispatcher::clear
    void clear()
    Discards all the events queued so far.
    Definition: dispatcher.hpp:228
    +
    entt::dispatcher::disconnect
    void disconnect(Type &value_or_instance)
    Utility function to disconnect everything related to a given value or instance from a dispatcher.
    Definition: dispatcher.hpp:200
    +
    entt::dispatcher::dispatcher
    dispatcher()=default
    Default constructor.
    +
    entt::dispatcher::operator=
    dispatcher & operator=(dispatcher &&)=default
    Default move assignment operator.
    +
    entt::dispatcher::update
    void update()
    Delivers all the pending events of the given type.
    Definition: dispatcher.hpp:250
    +
    entt::dispatcher::enqueue
    void enqueue(Args &&... args)
    Enqueues an event of the given type.
    Definition: dispatcher.hpp:175
    +
    entt::dispatcher::trigger
    void trigger(Args &&... args)
    Triggers an immediate event of the given type.
    Definition: dispatcher.hpp:146
    +
    entt::dispatcher::update
    void update() const
    Delivers all the pending events.
    Definition: dispatcher.hpp:261
    +
    entt::sigh
    Unmanaged signal handler.
    Definition: fwd.hpp:30
    +
    entt::sink
    Sink class.
    Definition: fwd.hpp:26
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::type_seq::value
    static id_type value()
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    + diff --git a/doxygen.css b/doxygen.css index f640966e2..ffbff0224 100644 --- a/doxygen.css +++ b/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.20 */ +/* The standard CSS for doxygen 1.9.1 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; @@ -103,30 +103,96 @@ caption { } span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; + font-size: 70%; text-align: center; } -div.qindex, div.navpath { - width: 100%; - line-height: 140%; +h3.version { + font-size: 90%; + text-align: center; } div.navtab { - margin-right: 15px; + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; } +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + /* @group Link Styling */ a { @@ -143,17 +209,6 @@ a:hover { text-decoration: underline; } -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #FFFFFF; - border: 1px double #869DCA; -} - .contents a.qindexHL:visited { color: #FFFFFF; } @@ -1426,6 +1481,12 @@ div.toc li.level4 { margin-left: 45px; } +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + .PageDocRTL-title div.toc li.level1 { margin-left: 0 !important; margin-right: 0; diff --git a/emitter_8hpp_source.html b/emitter_8hpp_source.html index 1dfc40c10..3261e2344 100644 --- a/emitter_8hpp_source.html +++ b/emitter_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/signal/emitter.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -174,7 +174,7 @@ $(function() {
    123 
    124  template<typename Event>
    125  [[nodiscard]] pool_handler<Event> * assure() {
    -
    126  const auto index = type_seq<Event>::value();
    +
    126  const auto index = type_seq<Event>::value();
    127 
    128  if(!(index < pools.size())) {
    129  pools.resize(std::size_t(index)+1u);
    @@ -189,7 +189,7 @@ $(function() {
    138 
    139  template<typename Event>
    140  [[nodiscard]] const pool_handler<Event> * assure() const {
    -
    141  const auto index = type_seq<Event>::value();
    +
    141  const auto index = type_seq<Event>::value();
    142  return (!(index < pools.size()) || !pools[index]) ? nullptr : static_cast<const pool_handler<Event> *>(pools[index].get());
    143  }
    144 
    @@ -244,7 +244,7 @@ $(function() {
    281  assure<Event>()->clear();
    282  }
    283 
    -
    290  void clear() ENTT_NOEXCEPT {
    +
    290  void clear() ENTT_NOEXCEPT {
    291  for(auto &&cpool: pools) {
    292  if(cpool) {
    293  cpool->clear();
    @@ -258,7 +258,7 @@ $(function() {
    306  return !cpool || cpool->empty();
    307  }
    308 
    -
    313  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
    +
    313  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
    314  return std::all_of(pools.cbegin(), pools.cend(), [](auto &&cpool) {
    315  return !cpool || cpool->empty();
    316  });
    @@ -273,29 +273,29 @@ $(function() {
    325 
    326 
    327 #endif
    - -
    entt::type_seq::value
    static id_type value() noexcept
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    -
    entt::emitter::erase
    void erase(connection< Event > conn)
    Disconnects a listener from the event emitter.
    Definition: emitter.hpp:267
    -
    entt::emitter::connection::connection
    connection()=default
    Default constructor.
    -
    entt::emitter::clear
    void clear()
    Disconnects all the listeners for the given event type.
    Definition: emitter.hpp:280
    entt::emitter
    General purpose event emitter.
    Definition: emitter.hpp:43
    +
    entt::emitter::empty
    bool empty() const
    Checks if there are listeners registered for the specific event.
    Definition: emitter.hpp:304
    +
    entt::emitter::on
    connection< Event > on(listener< Event > instance)
    Registers a long-lived listener with the event emitter.
    Definition: emitter.hpp:228
    +
    entt::emitter::listener
    typename pool_handler< Event >::listener_type listener
    Type of listeners accepted for the given event.
    Definition: emitter.hpp:148
    +
    entt::emitter::clear
    void clear()
    Disconnects all the listeners for the given event type.
    Definition: emitter.hpp:280
    +
    entt::emitter::publish
    void publish(Args &&... args)
    Emits the given event.
    Definition: emitter.hpp:202
    +
    entt::emitter::once
    connection< Event > once(listener< Event > instance)
    Registers a short-lived listener with the event emitter.
    Definition: emitter.hpp:253
    +
    entt::emitter::emitter
    emitter(emitter &&)=default
    Default move constructor.
    +
    entt::emitter::erase
    void erase(connection< Event > conn)
    Disconnects a listener from the event emitter.
    Definition: emitter.hpp:267
    +
    entt::emitter::operator=
    emitter & operator=(emitter &&)=default
    Default move assignment operator.
    +
    entt::emitter::empty
    bool empty() const
    Checks if there are listeners registered with the event emitter.
    Definition: emitter.hpp:313
    +
    entt::emitter::emitter
    emitter()=default
    Default constructor.
    +
    entt::emitter::~emitter
    virtual ~emitter()
    Default destructor.
    Definition: emitter.hpp:180
    +
    entt::emitter::clear
    void clear()
    Disconnects all the listeners.
    Definition: emitter.hpp:290
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::emitter::connection
    Generic connection type for events.
    Definition: emitter.hpp:160
    entt::emitter::connection::connection
    connection(typename pool_handler< Event >::connection_type conn)
    Creates a connection that wraps its underlying instance.
    Definition: emitter.hpp:171
    -
    entt::emitter::emitter
    emitter()=default
    Default constructor.
    -
    entt::emitter::empty
    bool empty() const noexcept
    Checks if there are listeners registered with the event emitter.
    Definition: emitter.hpp:313
    -
    entt::emitter::emitter
    emitter(emitter &&)=default
    Default move constructor.
    -
    entt::emitter::empty
    bool empty() const
    Checks if there are listeners registered for the specific event.
    Definition: emitter.hpp:304
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::emitter::listener
    typename pool_handler< Event >::listener_type listener
    Type of listeners accepted for the given event.
    Definition: emitter.hpp:148
    -
    entt::emitter::on
    connection< Event > on(listener< Event > instance)
    Registers a long-lived listener with the event emitter.
    Definition: emitter.hpp:228
    -
    entt::emitter::~emitter
    virtual ~emitter()
    Default destructor.
    Definition: emitter.hpp:180
    -
    entt::emitter::once
    connection< Event > once(listener< Event > instance)
    Registers a short-lived listener with the event emitter.
    Definition: emitter.hpp:253
    -
    entt::emitter::operator=
    emitter & operator=(emitter &&)=default
    Default move assignment operator.
    -
    entt::emitter::publish
    void publish(Args &&... args)
    Emits the given event.
    Definition: emitter.hpp:202
    -
    entt::emitter::clear
    void clear() noexcept
    Disconnects all the listeners.
    Definition: emitter.hpp:290
    +
    entt::emitter::connection::connection
    connection()=default
    Default constructor.
    +
    entt::type_seq::value
    static id_type value()
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    + diff --git a/entity_2fwd_8hpp_source.html b/entity_2fwd_8hpp_source.html index 538c47d61..a2105a5a0 100644 --- a/entity_2fwd_8hpp_source.html +++ b/entity_2fwd_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity/fwd.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,138 +74,139 @@ $(function() {
    2 #define ENTT_ENTITY_FWD_HPP
    3 
    4 
    -
    5 #include "../core/fwd.hpp"
    -
    6 
    +
    5 #include <memory>
    +
    6 #include "../core/fwd.hpp"
    7 
    -
    8 namespace entt {
    -
    9 
    +
    8 
    +
    9 namespace entt {
    10 
    -
    11 template<typename>
    -
    12 class basic_sparse_set;
    -
    13 
    +
    11 
    +
    12 template<typename Entity, typename = std::allocator<Entity>>
    +
    13 class basic_sparse_set;
    14 
    -
    15 template<typename, typename, typename>
    -
    16 class basic_storage;
    -
    17 
    +
    15 
    +
    16 template<typename, typename Type, typename = std::allocator<Type>>
    +
    17 struct basic_storage;
    18 
    -
    19 template<typename>
    -
    20 class basic_registry;
    -
    21 
    +
    19 
    +
    20 template<typename>
    +
    21 class basic_registry;
    22 
    -
    23 template<typename...>
    -
    24 class basic_view;
    -
    25 
    +
    23 
    +
    24 template<typename...>
    +
    25 struct basic_view;
    26 
    -
    27 template<typename>
    -
    28 class basic_runtime_view;
    -
    29 
    +
    27 
    +
    28 template<typename>
    +
    29 class basic_runtime_view;
    30 
    -
    31 template<typename...>
    -
    32 class basic_group;
    -
    33 
    +
    31 
    +
    32 template<typename...>
    +
    33 class basic_group;
    34 
    -
    35 template<typename>
    -
    36 class basic_observer;
    -
    37 
    +
    35 
    +
    36 template<typename>
    +
    37 class basic_observer;
    38 
    -
    39 template<typename>
    -
    40 class basic_organizer;
    -
    41 
    +
    39 
    +
    40 template<typename>
    +
    41 class basic_organizer;
    42 
    -
    43 template<typename, typename...>
    -
    44 struct basic_handle;
    -
    45 
    +
    43 
    +
    44 template<typename, typename...>
    +
    45 struct basic_handle;
    46 
    -
    47 template<typename>
    -
    48 class basic_snapshot;
    -
    49 
    +
    47 
    +
    48 template<typename>
    +
    49 class basic_snapshot;
    50 
    -
    51 template<typename>
    -
    52 class basic_snapshot_loader;
    -
    53 
    +
    51 
    +
    52 template<typename>
    +
    53 class basic_snapshot_loader;
    54 
    -
    55 template<typename>
    -
    56 class basic_continuous_loader;
    -
    57 
    +
    55 
    +
    56 template<typename>
    +
    57 class basic_continuous_loader;
    58 
    -
    60 enum class entity: id_type {};
    -
    61 
    +
    59 
    +
    61 enum class entity: id_type {};
    62 
    -
    64 using sparse_set = basic_sparse_set<entity>;
    -
    65 
    +
    63 
    +
    65 using sparse_set = basic_sparse_set<entity>;
    66 
    -
    71 template<typename... Args>
    -
    72 using storage = basic_storage<entity, Args...>;
    -
    73 
    +
    67 
    +
    72 template<typename... Args>
    +
    73 using storage = basic_storage<entity, Args...>;
    74 
    -
    76 using registry = basic_registry<entity>;
    -
    77 
    +
    75 
    +
    77 using registry = basic_registry<entity>;
    78 
    -
    80 using observer = basic_observer<entity>;
    -
    81 
    +
    79 
    +
    81 using observer = basic_observer<entity>;
    82 
    -
    84 using organizer = basic_organizer<entity>;
    -
    85 
    +
    83 
    +
    85 using organizer = basic_organizer<entity>;
    86 
    -
    88 using handle = basic_handle<entity>;
    -
    89 
    +
    87 
    +
    89 using handle = basic_handle<entity>;
    90 
    -
    92 using const_handle = basic_handle<const entity>;
    -
    93 
    +
    91 
    +
    93 using const_handle = basic_handle<const entity>;
    94 
    -
    99 template<typename... Args>
    -
    100 using handle_view = basic_handle<entity, Args...>;
    -
    101 
    +
    95 
    +
    100 template<typename... Args>
    +
    101 using handle_view = basic_handle<entity, Args...>;
    102 
    -
    107 template<typename... Args>
    -
    108 using const_handle_view = basic_handle<const entity, Args...>;
    -
    109 
    +
    103 
    +
    108 template<typename... Args>
    +
    109 using const_handle_view = basic_handle<const entity, Args...>;
    110 
    -
    112 using snapshot = basic_snapshot<entity>;
    -
    113 
    +
    111 
    +
    113 using snapshot = basic_snapshot<entity>;
    114 
    -
    116 using snapshot_loader = basic_snapshot_loader<entity>;
    -
    117 
    +
    115 
    +
    117 using snapshot_loader = basic_snapshot_loader<entity>;
    118 
    -
    120 using continuous_loader = basic_continuous_loader<entity>;
    -
    121 
    +
    119 
    +
    121 using continuous_loader = basic_continuous_loader<entity>;
    122 
    -
    127 template<typename... Args>
    -
    128 using view = basic_view<entity, Args...>;
    -
    129 
    +
    123 
    +
    128 template<typename... Args>
    +
    129 using view = basic_view<entity, Args...>;
    130 
    -
    132 using runtime_view = basic_runtime_view<entity>;
    -
    133 
    +
    131 
    +
    133 using runtime_view = basic_runtime_view<entity>;
    134 
    -
    139 template<typename... Args>
    -
    140 using group = basic_group<entity, Args...>;
    -
    141 
    +
    135 
    +
    140 template<typename... Args>
    +
    141 using group = basic_group<entity, Args...>;
    142 
    -
    143 }
    -
    144 
    +
    143 
    +
    144 }
    145 
    -
    146 #endif
    - -
    entt::basic_observer
    Observer.
    Definition: observer.hpp:172
    -
    entt::basic_snapshot
    Utility class to create snapshots from a registry.
    Definition: snapshot.hpp:34
    -
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    -
    entt::basic_runtime_view
    Runtime view.
    Definition: runtime_view.hpp:57
    -
    entt::basic_storage
    Basic storage implementation.
    Definition: storage.hpp:52
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::basic_group
    Group.
    Definition: fwd.hpp:32
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::basic_sparse_set
    Basic sparse set implementation.
    Definition: sparse_set.hpp:43
    -
    entt::basic_organizer
    Utility class for creating a static task graph.
    Definition: organizer.hpp:125
    -
    entt::basic_handle
    basic_handle(basic_registry< Entity > &, Entity) -> basic_handle< Entity >
    Deduction guide.
    +
    146 
    +
    147 #endif
    entt::basic_continuous_loader
    Utility class for continuous loading.
    Definition: snapshot.hpp:304
    -
    entt::basic_registry
    Fast and reliable entity-component system.
    Definition: registry.hpp:44
    -
    entt::basic_view
    View.
    Definition: fwd.hpp:24
    -
    entt::basic_view
    basic_view(Storage &... storage) noexcept -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
    Deduction guide.
    -
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:60
    +
    entt::basic_group
    Group.
    Definition: fwd.hpp:33
    +
    entt::basic_observer
    Observer.
    Definition: observer.hpp:172
    +
    entt::basic_organizer
    Utility class for creating a static task graph.
    Definition: organizer.hpp:125
    +
    entt::basic_registry
    Fast and reliable entity-component system.
    Definition: registry.hpp:45
    +
    entt::basic_runtime_view
    Runtime view.
    Definition: runtime_view.hpp:58
    entt::basic_snapshot_loader
    Utility class to restore a snapshot as a whole.
    Definition: snapshot.hpp:166
    +
    entt::basic_snapshot
    Utility class to create snapshots from a registry.
    Definition: snapshot.hpp:34
    +
    entt::basic_sparse_set
    Basic sparse set implementation.
    Definition: sparse_set.hpp:53
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:61
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    entt::basic_handle
    basic_handle(basic_registry< Entity > &, Entity) -> basic_handle< Entity >
    Deduction guide.
    +
    entt::basic_view
    basic_view(Storage &... storage) -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
    Deduction guide.
    +
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    +
    entt::basic_storage
    Storage implementation dispatcher.
    Definition: storage.hpp:1006
    +
    entt::basic_view
    View implementation dispatcher.
    Definition: fwd.hpp:25
    + diff --git a/entity_2handle_8hpp_source.html b/entity_2handle_8hpp_source.html index 08f5bd6a4..d4ee8b76e 100644 --- a/entity_2handle_8hpp_source.html +++ b/entity_2handle_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity/handle.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -88,199 +88,213 @@ $(function() {
    16 
    25 template<typename Entity, typename... Type>
    26 struct basic_handle {
    -
    28  using entity_type = std::remove_const_t<Entity>;
    -
    30  using registry_type = constness_as_t<basic_registry<entity_type>, Entity>;
    -
    31 
    -
    33  basic_handle() ENTT_NOEXCEPT
    -
    34  : reg{}, entt{null}
    -
    35  {}
    -
    36 
    -
    42  basic_handle(registry_type &ref, entity_type value) ENTT_NOEXCEPT
    -
    43  : reg{&ref}, entt{value}
    -
    44  {}
    -
    45 
    -
    53  template<typename... Args>
    -
    54  [[nodiscard]] bool operator==(const basic_handle<Args...> &other) const ENTT_NOEXCEPT {
    -
    55  return reg == other.registry() && entt == other.entity();
    -
    56  }
    -
    57 
    -
    65  template<typename Other, typename... Args>
    -
    66  operator basic_handle<Other, Args...>() const ENTT_NOEXCEPT {
    -
    67  static_assert(
    -
    68  (std::is_same_v<Other, Entity> || std::is_same_v<std::remove_const_t<Other>, Entity>)
    -
    69  && (sizeof...(Type) == 0 || ((sizeof...(Args) != 0 && sizeof...(Args) <= sizeof...(Type)) && ... && (type_list_contains_v<type_list<Type...>, Args>))),
    -
    70  "Invalid conversion between different handles"
    -
    71  );
    -
    72 
    -
    73  return reg ? basic_handle<Other, Args...>{*reg, entt} : basic_handle<Other, Args...>{};
    -
    74  }
    -
    75 
    -
    80  [[nodiscard]] operator entity_type() const ENTT_NOEXCEPT {
    -
    81  return entity();
    -
    82  }
    -
    83 
    -
    88  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    89  return reg && reg->valid(entt);
    -
    90  }
    -
    91 
    -
    96  [[nodiscard]] bool valid() const {
    -
    97  return reg->valid(entt);
    -
    98  }
    -
    99 
    -
    104  [[nodiscard]] registry_type * registry() const ENTT_NOEXCEPT {
    -
    105  return reg;
    -
    106  }
    -
    107 
    -
    112  [[nodiscard]] entity_type entity() const ENTT_NOEXCEPT {
    -
    113  return entt;
    -
    114  }
    -
    115 
    -
    120  void destroy() {
    -
    121  reg->destroy(entt);
    -
    122  }
    -
    123 
    -
    129  void destroy(const typename registry_type::version_type version) {
    -
    130  reg->destroy(entt, version);
    -
    131  }
    -
    132 
    -
    141  template<typename Component, typename... Args>
    -
    142  decltype(auto) emplace(Args &&... args) const {
    -
    143  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    -
    144  return reg->template emplace<Component>(entt, std::forward<Args>(args)...);
    -
    145  }
    -
    146 
    -
    155  template<typename Component, typename... Args>
    -
    156  decltype(auto) emplace_or_replace(Args &&... args) const {
    -
    157  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    -
    158  return reg->template emplace_or_replace<Component>(entt, std::forward<Args>(args)...);
    -
    159  }
    -
    160 
    -
    169  template<typename Component, typename... Func>
    -
    170  decltype(auto) patch(Func &&... func) const {
    -
    171  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    -
    172  return reg->template patch<Component>(entt, std::forward<Func>(func)...);
    -
    173  }
    -
    174 
    -
    183  template<typename Component, typename... Args>
    -
    184  decltype(auto) replace(Args &&... args) const {
    -
    185  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    -
    186  return reg->template replace<Component>(entt, std::forward<Args>(args)...);
    -
    187  }
    -
    188 
    -
    194  template<typename... Component>
    -
    195  void remove() const {
    -
    196  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    -
    197  reg->template remove<Component...>(entt);
    -
    198  }
    -
    199 
    -
    206  template<typename... Component>
    -
    207  decltype(auto) remove_if_exists() const {
    -
    208  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    -
    209  return reg->template remove_if_exists<Component...>(entt);
    -
    210  }
    -
    211 
    -
    216  void remove_all() const {
    -
    217  static_assert(sizeof...(Type) == 0, "Invalid operation");
    -
    218  reg->remove_all(entt);
    -
    219  }
    -
    220 
    -
    227  template<typename... Component>
    -
    228  [[nodiscard]] decltype(auto) all_of() const {
    -
    229  return reg->template all_of<Component...>(entt);
    -
    230  }
    -
    231 
    +
    28  using registry_type = constness_as_t<basic_registry<std::remove_const_t<Entity>>, Entity>;
    +
    30  using entity_type = typename registry_type::entity_type;
    +
    32  using version_type = typename registry_type::version_type;
    +
    34  using size_type = typename registry_type::size_type;
    +
    35 
    +
    37  basic_handle() ENTT_NOEXCEPT
    +
    38  : reg{}, entt{null}
    +
    39  {}
    +
    40 
    +
    46  basic_handle(registry_type &ref, entity_type value) ENTT_NOEXCEPT
    +
    47  : reg{&ref}, entt{value}
    +
    48  {}
    +
    49 
    +
    57  template<typename... Args>
    +
    58  [[nodiscard]] bool operator==(const basic_handle<Args...> &other) const ENTT_NOEXCEPT {
    +
    59  return reg == other.registry() && entt == other.entity();
    +
    60  }
    +
    61 
    +
    69  template<typename Other, typename... Args>
    +
    70  operator basic_handle<Other, Args...>() const ENTT_NOEXCEPT {
    +
    71  static_assert(
    +
    72  (std::is_same_v<Other, Entity> || std::is_same_v<std::remove_const_t<Other>, Entity>)
    +
    73  && (sizeof...(Type) == 0 || ((sizeof...(Args) != 0 && sizeof...(Args) <= sizeof...(Type)) && ... && (type_list_contains_v<type_list<Type...>, Args>))),
    +
    74  "Invalid conversion between different handles"
    +
    75  );
    +
    76 
    +
    77  return reg ? basic_handle<Other, Args...>{*reg, entt} : basic_handle<Other, Args...>{};
    +
    78  }
    +
    79 
    +
    84  [[nodiscard]] operator entity_type() const ENTT_NOEXCEPT {
    +
    85  return entity();
    +
    86  }
    +
    87 
    +
    92  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    93  return reg && reg->valid(entt);
    +
    94  }
    +
    95 
    +
    100  [[nodiscard]] bool valid() const {
    +
    101  return reg->valid(entt);
    +
    102  }
    +
    103 
    +
    108  [[nodiscard]] registry_type * registry() const ENTT_NOEXCEPT {
    +
    109  return reg;
    +
    110  }
    +
    111 
    +
    116  [[nodiscard]] entity_type entity() const ENTT_NOEXCEPT {
    +
    117  return entt;
    +
    118  }
    +
    119 
    +
    124  void destroy() {
    +
    125  reg->destroy(entt);
    +
    126  }
    +
    127 
    +
    133  void destroy(const version_type version) {
    +
    134  reg->destroy(entt, version);
    +
    135  }
    +
    136 
    +
    145  template<typename Component, typename... Args>
    +
    146  decltype(auto) emplace(Args &&... args) const {
    +
    147  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    +
    148  return reg->template emplace<Component>(entt, std::forward<Args>(args)...);
    +
    149  }
    +
    150 
    +
    159  template<typename Component, typename... Args>
    +
    160  decltype(auto) emplace_or_replace(Args &&... args) const {
    +
    161  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    +
    162  return reg->template emplace_or_replace<Component>(entt, std::forward<Args>(args)...);
    +
    163  }
    +
    164 
    +
    173  template<typename Component, typename... Func>
    +
    174  decltype(auto) patch(Func &&... func) const {
    +
    175  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    +
    176  return reg->template patch<Component>(entt, std::forward<Func>(func)...);
    +
    177  }
    +
    178 
    +
    187  template<typename Component, typename... Args>
    +
    188  decltype(auto) replace(Args &&... args) const {
    +
    189  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    +
    190  return reg->template replace<Component>(entt, std::forward<Args>(args)...);
    +
    191  }
    +
    192 
    +
    199  template<typename... Component>
    +
    200  size_type remove() const {
    +
    201  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    +
    202  return reg->template remove<Component...>(entt);
    +
    203  }
    +
    204 
    +
    210  template<typename... Component>
    +
    211  void erase() const {
    +
    212  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    +
    213  reg->template erase<Component...>(entt);
    +
    214  }
    +
    215 
    +
    217  template<typename... Component>
    +
    218  [[deprecated("Use ::remove instead")]]
    +
    219  size_type remove_if_exists() const {
    +
    220  return remove<Component...>();
    +
    221  }
    +
    222 
    +
    227  [[deprecated("No longer supported")]]
    +
    228  void remove_all() const {
    +
    229  static_assert(sizeof...(Type) == 0, "Invalid operation");
    +
    230  reg->remove_all(entt);
    +
    231  }
    +
    232 
    239  template<typename... Component>
    -
    240  [[nodiscard]] decltype(auto) any_of() const {
    -
    241  return reg->template any_of<Component...>(entt);
    +
    240  [[nodiscard]] decltype(auto) all_of() const {
    +
    241  return reg->template all_of<Component...>(entt);
    242  }
    243 
    -
    250  template<typename... Component>
    -
    251  [[nodiscard]] decltype(auto) get() const {
    -
    252  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    -
    253  return reg->template get<Component...>(entt);
    +
    251  template<typename... Component>
    +
    252  [[nodiscard]] decltype(auto) any_of() const {
    +
    253  return reg->template any_of<Component...>(entt);
    254  }
    255 
    -
    264  template<typename Component, typename... Args>
    -
    265  [[nodiscard]] decltype(auto) get_or_emplace(Args &&... args) const {
    -
    266  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    -
    267  return reg->template get_or_emplace<Component>(entt, std::forward<Args>(args)...);
    -
    268  }
    -
    269 
    -
    276  template<typename... Component>
    -
    277  [[nodiscard]] auto try_get() const {
    -
    278  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    -
    279  return reg->template try_get<Component...>(entt);
    +
    262  template<typename... Component>
    +
    263  [[nodiscard]] decltype(auto) get() const {
    +
    264  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    +
    265  return reg->template get<Component...>(entt);
    +
    266  }
    +
    267 
    +
    276  template<typename Component, typename... Args>
    +
    277  [[nodiscard]] decltype(auto) get_or_emplace(Args &&... args) const {
    +
    278  static_assert(((sizeof...(Type) == 0) || ... || std::is_same_v<Component, Type>), "Invalid type");
    +
    279  return reg->template get_or_emplace<Component>(entt, std::forward<Args>(args)...);
    280  }
    281 
    -
    286  [[nodiscard]] bool orphan() const {
    -
    287  return reg->orphan(entt);
    -
    288  }
    -
    289 
    -
    296  template<typename Func>
    -
    297  void visit(Func &&func) const {
    -
    298  reg->visit(entt, std::forward<Func>(func));
    -
    299  }
    -
    300 
    -
    301 private:
    -
    302  registry_type *reg;
    -
    303  entity_type entt;
    -
    304 };
    -
    305 
    -
    306 
    -
    316 template<typename Type, typename Other>
    -
    317 bool operator!=(const basic_handle<Type> &lhs, const basic_handle<Other> &rhs) ENTT_NOEXCEPT {
    -
    318  return !(lhs == rhs);
    -
    319 }
    -
    320 
    -
    321 
    -
    326 template<typename Entity>
    -
    327 basic_handle(basic_registry<Entity> &, Entity) -> basic_handle<Entity>;
    -
    328 
    -
    329 
    -
    334 template<typename Entity>
    -
    335 basic_handle(const basic_registry<Entity> &, Entity) -> basic_handle<const Entity>;
    -
    336 
    -
    337 
    -
    338 }
    -
    339 
    -
    340 
    -
    341 #endif
    - -
    entt::basic_handle::remove
    void remove() const
    Removes the given components from a handle.
    Definition: handle.hpp:195
    -
    entt::basic_handle::entity_type
    std::remove_const_t< Entity > entity_type
    Underlying entity identifier.
    Definition: handle.hpp:28
    -
    entt::basic_handle::patch
    decltype(auto) patch(Func &&... func) const
    Patches the given component for a handle.
    Definition: handle.hpp:170
    -
    entt::type_list< Type... >
    -
    entt::basic_handle::replace
    decltype(auto) replace(Args &&... args) const
    Replaces the given component for a handle.
    Definition: handle.hpp:184
    -
    entt::basic_handle::destroy
    void destroy()
    Destroys the entity associated with a handle.
    Definition: handle.hpp:120
    -
    entt::basic_handle::orphan
    bool orphan() const
    Checks if a handle has components assigned.
    Definition: handle.hpp:286
    -
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    -
    entt::basic_handle::emplace_or_replace
    decltype(auto) emplace_or_replace(Args &&... args) const
    Assigns or replaces the given component for a handle.
    Definition: handle.hpp:156
    -
    entt::basic_handle::entity
    entity_type entity() const noexcept
    Returns the entity associated with a handle.
    Definition: handle.hpp:112
    -
    entt::basic_handle::registry
    registry_type * registry() const noexcept
    Returns a pointer to the underlying registry, if any.
    Definition: handle.hpp:104
    -
    entt::basic_handle::get
    decltype(auto) get() const
    Returns references to the given components for a handle.
    Definition: handle.hpp:251
    -
    entt::basic_handle::basic_handle
    basic_handle(registry_type &ref, entity_type value) noexcept
    Constructs a handle from a given registry and entity.
    Definition: handle.hpp:42
    -
    entt::basic_handle::visit
    void visit(Func &&func) const
    Visits a handle and returns the types for its components.
    Definition: handle.hpp:297
    -
    entt::basic_handle::operator==
    bool operator==(const basic_handle< Args... > &other) const noexcept
    Compares two handles.
    Definition: handle.hpp:54
    +
    288  template<typename... Component>
    +
    289  [[nodiscard]] auto try_get() const {
    +
    290  static_assert(sizeof...(Type) == 0 || (type_list_contains_v<type_list<Type...>, Component> && ...), "Invalid type");
    +
    291  return reg->template try_get<Component...>(entt);
    +
    292  }
    +
    293 
    +
    298  [[nodiscard]] bool orphan() const {
    +
    299  return reg->orphan(entt);
    +
    300  }
    +
    301 
    +
    308  template<typename Func>
    +
    309  void visit(Func &&func) const {
    +
    310  reg->visit(entt, std::forward<Func>(func));
    +
    311  }
    +
    312 
    +
    313 private:
    +
    314  registry_type *reg;
    +
    315  entity_type entt;
    +
    316 };
    +
    317 
    +
    318 
    +
    328 template<typename Type, typename Other>
    +
    329 bool operator!=(const basic_handle<Type> &lhs, const basic_handle<Other> &rhs) ENTT_NOEXCEPT {
    +
    330  return !(lhs == rhs);
    +
    331 }
    +
    332 
    +
    333 
    +
    338 template<typename Entity>
    +
    339 basic_handle(basic_registry<Entity> &, Entity)
    +
    340 -> basic_handle<Entity>;
    +
    341 
    +
    342 
    +
    347 template<typename Entity>
    +
    348 basic_handle(const basic_registry<Entity> &, Entity)
    +
    349 -> basic_handle<const Entity>;
    +
    350 
    +
    351 
    +
    352 }
    +
    353 
    +
    354 
    +
    355 #endif
    +
    entt::basic_registry
    Fast and reliable entity-component system.
    Definition: registry.hpp:45
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::type_list_contains_v
    constexpr auto type_list_contains_v
    Helper variable template.
    Definition: type_traits.hpp:290
    -
    entt::basic_handle::emplace
    decltype(auto) emplace(Args &&... args) const
    Assigns the given component to a handle.
    Definition: handle.hpp:142
    -
    entt::basic_handle::valid
    bool valid() const
    Checks if a handle refers to a valid entity or not.
    Definition: handle.hpp:96
    -
    entt::basic_handle::basic_handle
    basic_handle() noexcept
    Constructs an invalid handle.
    Definition: handle.hpp:33
    -
    entt::basic_handle::any_of
    decltype(auto) any_of() const
    Checks if a handle has at least one of the given components.
    Definition: handle.hpp:240
    entt::basic_handle
    basic_handle(basic_registry< Entity > &, Entity) -> basic_handle< Entity >
    Deduction guide.
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::basic_handle::remove_all
    void remove_all() const
    Removes all the components from a handle and makes it orphaned.
    Definition: handle.hpp:216
    -
    entt::basic_registry
    Fast and reliable entity-component system.
    Definition: registry.hpp:44
    -
    entt::basic_handle::destroy
    void destroy(const typename registry_type::version_type version)
    Destroys the entity associated with a handle.
    Definition: handle.hpp:129
    -
    entt::basic_handle::get_or_emplace
    decltype(auto) get_or_emplace(Args &&... args) const
    Returns a reference to the given component for a handle.
    Definition: handle.hpp:265
    -
    entt::basic_handle::try_get
    auto try_get() const
    Returns pointers to the given components for a handle.
    Definition: handle.hpp:277
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    -
    entt::basic_handle::remove_if_exists
    decltype(auto) remove_if_exists() const
    Removes the given components from a handle.
    Definition: handle.hpp:207
    -
    entt::basic_handle::registry_type
    constness_as_t< basic_registry< entity_type >, Entity > registry_type
    Type of registry accepted by the handle.
    Definition: handle.hpp:30
    -
    entt::basic_handle::all_of
    decltype(auto) all_of() const
    Checks if a handle has all the given components.
    Definition: handle.hpp:228
    +
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:653
    +
    entt::type_list_contains_v
    constexpr bool type_list_contains_v
    Helper variable template.
    Definition: type_traits.hpp:291
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    +
    entt::basic_handle::any_of
    decltype(auto) any_of() const
    Checks if a handle has at least one of the given components.
    Definition: handle.hpp:252
    +
    entt::basic_handle::orphan
    bool orphan() const
    Checks if a handle has components assigned.
    Definition: handle.hpp:298
    +
    entt::basic_handle::size_type
    typename registry_type::size_type size_type
    Unsigned integer type.
    Definition: handle.hpp:34
    +
    entt::basic_handle::operator==
    bool operator==(const basic_handle< Args... > &other) const
    Compares two handles.
    Definition: handle.hpp:58
    +
    entt::basic_handle::get
    decltype(auto) get() const
    Returns references to the given components for a handle.
    Definition: handle.hpp:263
    +
    entt::basic_handle::visit
    void visit(Func &&func) const
    Visits a handle and returns the types for its components.
    Definition: handle.hpp:309
    +
    entt::basic_handle::entity
    entity_type entity() const
    Returns the entity associated with a handle.
    Definition: handle.hpp:116
    +
    entt::basic_handle::all_of
    decltype(auto) all_of() const
    Checks if a handle has all the given components.
    Definition: handle.hpp:240
    +
    entt::basic_handle::registry
    registry_type * registry() const
    Returns a pointer to the underlying registry, if any.
    Definition: handle.hpp:108
    +
    entt::basic_handle::remove_if_exists
    size_type remove_if_exists() const
    Removes the given components from a handle.
    Definition: handle.hpp:219
    +
    entt::basic_handle::entity_type
    typename registry_type::entity_type entity_type
    Underlying entity identifier.
    Definition: handle.hpp:30
    +
    entt::basic_handle::try_get
    auto try_get() const
    Returns pointers to the given components for a handle.
    Definition: handle.hpp:289
    +
    entt::basic_handle::emplace
    decltype(auto) emplace(Args &&... args) const
    Assigns the given component to a handle.
    Definition: handle.hpp:146
    +
    entt::basic_handle::basic_handle
    basic_handle(registry_type &ref, entity_type value)
    Constructs a handle from a given registry and entity.
    Definition: handle.hpp:46
    +
    entt::basic_handle::get_or_emplace
    decltype(auto) get_or_emplace(Args &&... args) const
    Returns a reference to the given component for a handle.
    Definition: handle.hpp:277
    +
    entt::basic_handle::destroy
    void destroy()
    Destroys the entity associated with a handle.
    Definition: handle.hpp:124
    +
    entt::basic_handle::version_type
    typename registry_type::version_type version_type
    Underlying version type.
    Definition: handle.hpp:32
    +
    entt::basic_handle::valid
    bool valid() const
    Checks if a handle refers to a valid entity or not.
    Definition: handle.hpp:100
    +
    entt::basic_handle::remove
    size_type remove() const
    Removes the given components from a handle.
    Definition: handle.hpp:200
    +
    entt::basic_handle::erase
    void erase() const
    Erases the given components from a handle.
    Definition: handle.hpp:211
    +
    entt::basic_handle::basic_handle
    basic_handle()
    Constructs an invalid handle.
    Definition: handle.hpp:37
    +
    entt::basic_handle::registry_type
    constness_as_t< basic_registry< std::remove_const_t< Entity > >, Entity > registry_type
    Type of registry accepted by the handle.
    Definition: handle.hpp:28
    +
    entt::basic_handle::patch
    decltype(auto) patch(Func &&... func) const
    Patches the given component for a handle.
    Definition: handle.hpp:174
    +
    entt::basic_handle::destroy
    void destroy(const version_type version)
    Destroys the entity associated with a handle.
    Definition: handle.hpp:133
    +
    entt::basic_handle::emplace_or_replace
    decltype(auto) emplace_or_replace(Args &&... args) const
    Assigns or replaces the given component for a handle.
    Definition: handle.hpp:160
    +
    entt::basic_handle::remove_all
    void remove_all() const
    Removes all the components from a handle and makes it orphaned.
    Definition: handle.hpp:228
    +
    entt::basic_handle::replace
    decltype(auto) replace(Args &&... args) const
    Replaces the given component for a handle.
    Definition: handle.hpp:188
    +
    entt::type_list< Type... >
    + diff --git a/entity_2policy_8hpp_source.html b/entity_2policy_8hpp_source.html new file mode 100644 index 000000000..1a192f487 --- /dev/null +++ b/entity_2policy_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +EnTT: src/entt/entity/policy.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    policy.hpp
    +
    +
    +
    1 #ifndef ENTT_ENTITY_POLICY_HPP
    +
    2 #define ENTT_ENTITY_POLICY_HPP
    +
    3 
    +
    4 
    +
    5 #include <type_traits>
    +
    6 #include "entity.hpp"
    +
    7 
    +
    8 
    +
    9 namespace entt {
    +
    10 
    +
    11 
    + +
    18  template<typename Entity>
    +
    19  [[nodiscard]] static constexpr bool accept(const Entity entity) ENTT_NOEXCEPT {
    +
    20  return entity != tombstone;
    +
    21  }
    +
    26 };
    +
    27 
    +
    28 
    + +
    35  template<typename Entity>
    +
    36  [[nodiscard]] static constexpr bool accept(const Entity) ENTT_NOEXCEPT {
    +
    37  return true;
    +
    38  }
    +
    43 };
    +
    44 
    +
    45 
    +
    50 template<typename Policy>
    +
    51 struct is_storage_policy: std::is_base_of<stable_storage_policy, Policy> {};
    +
    52 
    +
    53 
    +
    58 template<typename Policy>
    + +
    60 
    +
    61 
    +
    62 }
    +
    63 
    +
    64 
    +
    65 #endif
    +
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entity
    Default entity identifier.
    Definition: fwd.hpp:62
    +
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition: entity.hpp:358
    +
    constexpr auto is_storage_policy_v
    Helper variable template.
    Definition: policy.hpp:59
    +
    Tests whether a class represents a storage policy.
    Definition: policy.hpp:51
    +
    Packed storage policy, aimed at faster linear iteration.
    Definition: policy.hpp:30
    +
    Stable storage policy, aimed at pointer stability.
    Definition: policy.hpp:13
    +
    + + + + diff --git a/entity_2utility_8hpp_source.html b/entity_2utility_8hpp_source.html index 3200c3afb..99b3ea1ce 100644 --- a/entity_2utility_8hpp_source.html +++ b/entity_2utility_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity/utility.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,16 +100,16 @@ $(function() {
    44 
    45 
    46 #endif
    - +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::exclude
    constexpr exclude_t< Type... > exclude
    Variable template for exclusion lists.
    Definition: utility.hpp:24
    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    entt::get
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    entt::exclude_t
    Alias for exclusion lists.
    Definition: utility.hpp:16
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::get_t
    Alias for lists of observed components.
    Definition: utility.hpp:32
    +
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:128
    + diff --git a/entity_8hpp_source.html b/entity_8hpp_source.html index 7d1136651..c2d93020a 100644 --- a/entity_8hpp_source.html +++ b/entity_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity/entity.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -83,112 +83,214 @@ $(function() {
    11 namespace entt {
    12 
    13 
    -
    20 template<typename, typename = void>
    -
    21 struct entt_traits;
    +
    20 namespace internal {
    +
    21 
    22 
    -
    23 
    -
    28 template<typename Type>
    -
    29 struct entt_traits<Type, std::enable_if_t<std::is_enum_v<Type>>>
    -
    30  : entt_traits<std::underlying_type_t<Type>>
    -
    31 {};
    +
    23 template<typename, typename = void>
    +
    24 struct entt_traits;
    +
    25 
    +
    26 
    +
    27 template<typename Type>
    +
    28 struct entt_traits<Type, std::enable_if_t<std::is_enum_v<Type>>>
    +
    29  : entt_traits<std::underlying_type_t<Type>>
    +
    30 {};
    +
    31 
    32 
    -
    33 
    -
    42 template<>
    -
    43 struct entt_traits<std::uint32_t> {
    -
    45  using entity_type = std::uint32_t;
    -
    47  using version_type = std::uint16_t;
    -
    49  using difference_type = std::int64_t;
    +
    33 template<typename Type>
    +
    34 struct entt_traits<Type, std::enable_if_t<std::is_class_v<Type>>>
    +
    35  : entt_traits<typename Type::entity_type>
    +
    36 {};
    +
    37 
    +
    38 
    +
    39 template<>
    +
    40 struct entt_traits<std::uint32_t> {
    +
    41  using entity_type = std::uint32_t;
    +
    42  using version_type = std::uint16_t;
    +
    43  using difference_type = std::int64_t;
    +
    44 
    +
    45  static constexpr entity_type entity_mask = 0xFFFFF;
    +
    46  static constexpr entity_type version_mask = 0xFFF;
    +
    47  static constexpr std::size_t entity_shift = 20u;
    +
    48 };
    +
    49 
    50 
    -
    52  static constexpr entity_type entity_mask = 0xFFFFF;
    -
    54  static constexpr entity_type version_mask = 0xFFF;
    -
    56  static constexpr std::size_t entity_shift = 20u;
    -
    57 };
    -
    58 
    -
    59 
    -
    68 template<>
    -
    69 struct entt_traits<std::uint64_t> {
    -
    71  using entity_type = std::uint64_t;
    -
    73  using version_type = std::uint32_t;
    -
    75  using difference_type = std::int64_t;
    -
    76 
    -
    78  static constexpr entity_type entity_mask = 0xFFFFFFFF;
    -
    80  static constexpr entity_type version_mask = 0xFFFFFFFF;
    -
    82  static constexpr std::size_t entity_shift = 32u;
    -
    83 };
    -
    84 
    -
    85 
    -
    92 template<typename Entity>
    -
    93 [[nodiscard]] constexpr auto to_integral(const Entity entity) ENTT_NOEXCEPT {
    -
    94  return static_cast<typename entt_traits<Entity>::entity_type>(entity);
    -
    95 }
    -
    96 
    -
    97 
    -
    99 struct null_t {
    -
    105  template<typename Entity>
    -
    106  [[nodiscard]] constexpr operator Entity() const ENTT_NOEXCEPT {
    -
    107  return Entity{entt_traits<Entity>::entity_mask};
    -
    108  }
    -
    109 
    -
    114  [[nodiscard]] constexpr bool operator==(const null_t &) const ENTT_NOEXCEPT {
    -
    115  return true;
    +
    51 template<>
    +
    52 struct entt_traits<std::uint64_t> {
    +
    53  using entity_type = std::uint64_t;
    +
    54  using version_type = std::uint32_t;
    +
    55  using difference_type = std::int64_t;
    +
    56 
    +
    57  static constexpr entity_type entity_mask = 0xFFFFFFFF;
    +
    58  static constexpr entity_type version_mask = 0xFFFFFFFF;
    +
    59  static constexpr std::size_t entity_shift = 32u;
    +
    60 };
    +
    61 
    +
    62 
    +
    63 }
    +
    64 
    +
    65 
    +
    76 template<typename Type>
    +
    77 class entt_traits: private internal::entt_traits<Type> {
    +
    78  using traits_type = internal::entt_traits<Type>;
    +
    79 
    +
    80 public:
    +
    82  using value_type = Type;
    +
    84  using entity_type = typename traits_type::entity_type;
    +
    86  using version_type = typename traits_type::version_type;
    +
    88  using difference_type = typename traits_type::difference_type;
    +
    89 
    +
    95  [[nodiscard]] static constexpr entity_type to_integral(const value_type value) ENTT_NOEXCEPT {
    +
    96  return static_cast<entity_type>(value);
    +
    97  }
    +
    98 
    +
    104  [[nodiscard]] static constexpr entity_type to_entity(const value_type value) ENTT_NOEXCEPT {
    +
    105  return (to_integral(value) & traits_type::entity_mask);
    +
    106  }
    +
    107 
    +
    113  [[nodiscard]] static constexpr version_type to_version(const value_type value) ENTT_NOEXCEPT {
    +
    114  constexpr auto mask = (traits_type::version_mask << traits_type::entity_shift);
    +
    115  return ((to_integral(value) & mask) >> traits_type::entity_shift);
    116  }
    117 
    -
    122  [[nodiscard]] constexpr bool operator!=(const null_t &) const ENTT_NOEXCEPT {
    -
    123  return false;
    -
    124  }
    -
    125 
    -
    132  template<typename Entity>
    -
    133  [[nodiscard]] constexpr bool operator==(const Entity &entity) const ENTT_NOEXCEPT {
    -
    134  return (to_integral(entity) & entt_traits<Entity>::entity_mask) == to_integral(static_cast<Entity>(*this));
    -
    135  }
    -
    136 
    -
    143  template<typename Entity>
    -
    144  [[nodiscard]] constexpr bool operator!=(const Entity &entity) const ENTT_NOEXCEPT {
    -
    145  return !(entity == *this);
    -
    146  }
    -
    147 };
    -
    148 
    -
    149 
    -
    157 template<typename Entity>
    -
    158 [[nodiscard]] constexpr bool operator==(const Entity &entity, const null_t &other) ENTT_NOEXCEPT {
    -
    159  return other.operator==(entity);
    -
    160 }
    -
    161 
    -
    162 
    -
    170 template<typename Entity>
    -
    171 [[nodiscard]] constexpr bool operator!=(const Entity &entity, const null_t &other) ENTT_NOEXCEPT {
    -
    172  return !(other == entity);
    -
    173 }
    -
    174 
    +
    128  [[nodiscard]] static constexpr value_type construct(const entity_type entity = traits_type::entity_mask, const version_type version = traits_type::version_mask) ENTT_NOEXCEPT {
    +
    129  return value_type{(entity & traits_type::entity_mask) | (version << traits_type::entity_shift)};
    +
    130  }
    +
    131 };
    +
    132 
    +
    133 
    +
    140 template<typename Entity>
    +
    141 [[nodiscard]] constexpr auto to_integral(const Entity entity) ENTT_NOEXCEPT {
    +
    142  return entt_traits<Entity>::to_integral(entity);
    +
    143 }
    +
    144 
    +
    145 
    +
    147 struct null_t {
    +
    153  template<typename Entity>
    +
    154  [[nodiscard]] constexpr operator Entity() const ENTT_NOEXCEPT {
    +
    155  return entt_traits<Entity>::construct();
    +
    156  }
    +
    157 
    +
    163  [[nodiscard]] constexpr bool operator==([[maybe_unused]] const null_t other) const ENTT_NOEXCEPT {
    +
    164  return true;
    +
    165  }
    +
    166 
    +
    172  [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const null_t other) const ENTT_NOEXCEPT {
    +
    173  return false;
    +
    174  }
    175 
    -
    189 inline constexpr null_t null{};
    -
    190 
    -
    191 
    -
    192 }
    -
    193 
    -
    194 
    -
    195 #endif
    - -
    entt::operator==
    constexpr bool operator==(const Entity &entity, const null_t &other) noexcept
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:158
    -
    entt::entt_traits< std::uint64_t >::version_type
    std::uint32_t version_type
    Underlying version type.
    Definition: entity.hpp:73
    -
    entt::entt_traits< std::uint64_t >::entity_type
    std::uint64_t entity_type
    Underlying entity type.
    Definition: entity.hpp:71
    -
    entt::null_t::operator==
    constexpr bool operator==(const Entity &entity) const noexcept
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:133
    -
    entt::to_integral
    constexpr auto to_integral(const Entity entity) noexcept
    Converts an entity type to its underlying type.
    Definition: entity.hpp:93
    -
    entt::null_t::operator!=
    constexpr bool operator!=(const Entity &entity) const noexcept
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:144
    -
    entt::entt_traits< std::uint32_t >::entity_type
    std::uint32_t entity_type
    Underlying entity type.
    Definition: entity.hpp:45
    -
    entt::null_t
    Null object for all entity identifiers.
    Definition: entity.hpp:99
    -
    entt::entt_traits< std::uint64_t >::difference_type
    std::int64_t difference_type
    Difference type.
    Definition: entity.hpp:75
    -
    entt::entt_traits< std::uint32_t >::difference_type
    std::int64_t difference_type
    Difference type.
    Definition: entity.hpp:49
    -
    entt::null_t::operator!=
    constexpr bool operator!=(const null_t &) const noexcept
    Compares two null objects.
    Definition: entity.hpp:122
    +
    182  template<typename Entity>
    +
    183  [[nodiscard]] constexpr bool operator==(const Entity entity) const ENTT_NOEXCEPT {
    +
    184  return entt_traits<Entity>::to_entity(entity) == entt_traits<Entity>::to_entity(*this);
    +
    185  }
    +
    186 
    +
    193  template<typename Entity>
    +
    194  [[nodiscard]] constexpr bool operator!=(const Entity entity) const ENTT_NOEXCEPT {
    +
    195  return !(entity == *this);
    +
    196  }
    +
    197 
    +
    204  template<typename Entity>
    +
    205  [[nodiscard]] constexpr Entity operator|(const Entity entity) const ENTT_NOEXCEPT {
    +
    206  return entt_traits<Entity>::construct(entt_traits<Entity>::to_entity(*this), entt_traits<Entity>::to_version(entity));
    +
    207  }
    +
    208 };
    +
    209 
    +
    210 
    +
    218 template<typename Entity>
    +
    219 [[nodiscard]] constexpr bool operator==(const Entity entity, const null_t other) ENTT_NOEXCEPT {
    +
    220  return other.operator==(entity);
    +
    221 }
    +
    222 
    +
    223 
    +
    231 template<typename Entity>
    +
    232 [[nodiscard]] constexpr bool operator!=(const Entity entity, const null_t other) ENTT_NOEXCEPT {
    +
    233  return !(other == entity);
    +
    234 }
    +
    235 
    +
    236 
    +
    238 struct tombstone_t {
    +
    244  template<typename Entity>
    +
    245  [[nodiscard]] constexpr operator Entity() const ENTT_NOEXCEPT {
    +
    246  return entt_traits<Entity>::construct();
    +
    247  }
    +
    248 
    +
    254  [[nodiscard]] constexpr bool operator==([[maybe_unused]] const tombstone_t other) const ENTT_NOEXCEPT {
    +
    255  return true;
    +
    256  }
    +
    257 
    +
    263  [[nodiscard]] constexpr bool operator!=([[maybe_unused]] const tombstone_t other) const ENTT_NOEXCEPT {
    +
    264  return false;
    +
    265  }
    +
    266 
    +
    273  template<typename Entity>
    +
    274  [[nodiscard]] constexpr bool operator==(const Entity entity) const ENTT_NOEXCEPT {
    +
    275  return entt_traits<Entity>::to_version(entity) == entt_traits<Entity>::to_version(*this);
    +
    276  }
    +
    277 
    +
    284  template<typename Entity>
    +
    285  [[nodiscard]] constexpr bool operator!=(const Entity entity) const ENTT_NOEXCEPT {
    +
    286  return !(entity == *this);
    +
    287  }
    +
    288 
    +
    295  template<typename Entity>
    +
    296  [[nodiscard]] constexpr Entity operator|(const Entity entity) const ENTT_NOEXCEPT {
    +
    297  return entt_traits<Entity>::construct(entt_traits<Entity>::to_entity(entity));
    +
    298  }
    +
    299 };
    +
    300 
    +
    301 
    +
    309 template<typename Entity>
    +
    310 [[nodiscard]] constexpr bool operator==(const Entity entity, const tombstone_t other) ENTT_NOEXCEPT {
    +
    311  return other.operator==(entity);
    +
    312 }
    +
    313 
    +
    314 
    +
    322 template<typename Entity>
    +
    323 [[nodiscard]] constexpr bool operator!=(const Entity entity, const tombstone_t other) ENTT_NOEXCEPT {
    +
    324  return !(other == entity);
    +
    325 }
    +
    326 
    +
    327 
    +
    335 inline constexpr null_t null{};
    +
    336 
    +
    337 
    +
    345 inline constexpr tombstone_t tombstone{};
    +
    346 
    +
    347 
    +
    348 }
    +
    349 
    +
    350 
    +
    351 #endif
    +
    entt::entt_traits
    Entity traits.
    Definition: entity.hpp:77
    +
    entt::entt_traits::to_integral
    static constexpr entity_type to_integral(const value_type value)
    Converts an entity to its underlying type.
    Definition: entity.hpp:95
    +
    entt::entt_traits::to_entity
    static constexpr entity_type to_entity(const value_type value)
    Returns the entity part once converted to the underlying type.
    Definition: entity.hpp:104
    +
    entt::entt_traits::version_type
    typename traits_type::version_type version_type
    Underlying version type.
    Definition: entity.hpp:86
    +
    entt::entt_traits::entity_type
    typename traits_type::entity_type entity_type
    Underlying entity type.
    Definition: entity.hpp:84
    +
    entt::entt_traits::construct
    static constexpr value_type construct(const entity_type entity=traits_type::entity_mask, const version_type version=traits_type::version_mask)
    Constructs an identifier from its parts.
    Definition: entity.hpp:128
    +
    entt::entt_traits::value_type
    Type value_type
    Value type.
    Definition: entity.hpp:82
    +
    entt::entt_traits::to_version
    static constexpr version_type to_version(const value_type value)
    Returns the version part once converted to the underlying type.
    Definition: entity.hpp:113
    +
    entt::entt_traits::difference_type
    typename traits_type::difference_type difference_type
    Difference type.
    Definition: entity.hpp:88
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::entt_traits< std::uint32_t >::version_type
    std::uint16_t version_type
    Underlying version type.
    Definition: entity.hpp:47
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::entt_traits
    Entity traits.
    Definition: entity.hpp:21
    -
    entt::null_t::operator==
    constexpr bool operator==(const null_t &) const noexcept
    Compares two null objects.
    Definition: entity.hpp:114
    -
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:60
    +
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:61
    +
    entt::to_integral
    constexpr auto to_integral(const Entity entity)
    Converts an entity to its underlying type.
    Definition: entity.hpp:141
    +
    entt::tombstone
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition: entity.hpp:345
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::operator==
    constexpr bool operator==(const Entity entity, const null_t other)
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:219
    +
    entt::null_t
    Null object for all entity identifiers.
    Definition: entity.hpp:147
    +
    entt::null_t::operator!=
    constexpr bool operator!=([[maybe_unused]] const null_t other) const
    Compares two null objects.
    Definition: entity.hpp:172
    +
    entt::null_t::operator!=
    constexpr bool operator!=(const Entity entity) const
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:194
    +
    entt::null_t::operator==
    constexpr bool operator==(const Entity entity) const
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:183
    +
    entt::null_t::operator==
    constexpr bool operator==([[maybe_unused]] const null_t other) const
    Compares two null objects.
    Definition: entity.hpp:163
    +
    entt::null_t::operator|
    constexpr Entity operator|(const Entity entity) const
    Creates a null object from an entity identifier of any type.
    Definition: entity.hpp:205
    +
    entt::tombstone_t
    Tombstone object for all entity identifiers.
    Definition: entity.hpp:238
    +
    entt::tombstone_t::operator|
    constexpr Entity operator|(const Entity entity) const
    Creates a tombstone object from an entity identifier of any type.
    Definition: entity.hpp:296
    +
    entt::tombstone_t::operator==
    constexpr bool operator==([[maybe_unused]] const tombstone_t other) const
    Compares two tombstone objects.
    Definition: entity.hpp:254
    +
    entt::tombstone_t::operator==
    constexpr bool operator==(const Entity entity) const
    Compares a tombstone object and an entity identifier of any type.
    Definition: entity.hpp:274
    +
    entt::tombstone_t::operator!=
    constexpr bool operator!=(const Entity entity) const
    Compares a tombstone object and an entity identifier of any type.
    Definition: entity.hpp:285
    +
    entt::tombstone_t::operator!=
    constexpr bool operator!=([[maybe_unused]] const tombstone_t other) const
    Compares two tombstone objects.
    Definition: entity.hpp:263
    + diff --git a/entt_8hpp_source.html b/entt_8hpp_source.html index 5878cb12a..91e5836b4 100644 --- a/entt_8hpp_source.html +++ b/entt_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entt.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,49 +81,50 @@ $(function() {
    9 #include "core/type_info.hpp"
    10 #include "core/type_traits.hpp"
    11 #include "core/utility.hpp"
    -
    12 #include "entity/entity.hpp"
    -
    13 #include "entity/group.hpp"
    -
    14 #include "entity/handle.hpp"
    -
    15 #include "entity/helper.hpp"
    -
    16 #include "entity/observer.hpp"
    -
    17 #include "entity/organizer.hpp"
    -
    18 #include "entity/poly_storage.hpp"
    -
    19 #include "entity/registry.hpp"
    -
    20 #include "entity/runtime_view.hpp"
    -
    21 #include "entity/snapshot.hpp"
    -
    22 #include "entity/sparse_set.hpp"
    -
    23 #include "entity/storage.hpp"
    -
    24 #include "entity/utility.hpp"
    -
    25 #include "entity/view.hpp"
    -
    26 #include "locator/locator.hpp"
    -
    27 #include "meta/adl_pointer.hpp"
    -
    28 #include "meta/container.hpp"
    -
    29 #include "meta/ctx.hpp"
    -
    30 #include "meta/factory.hpp"
    -
    31 #include "meta/meta.hpp"
    -
    32 #include "meta/node.hpp"
    -
    33 #include "meta/pointer.hpp"
    -
    34 #include "meta/policy.hpp"
    -
    35 #include "meta/range.hpp"
    -
    36 #include "meta/resolve.hpp"
    -
    37 #include "meta/template.hpp"
    -
    38 #include "meta/type_traits.hpp"
    -
    39 #include "meta/utility.hpp"
    -
    40 #include "platform/android-ndk-r17.hpp"
    -
    41 #include "poly/poly.hpp"
    -
    42 #include "process/process.hpp"
    -
    43 #include "process/scheduler.hpp"
    -
    44 #include "resource/cache.hpp"
    -
    45 #include "resource/handle.hpp"
    -
    46 #include "resource/loader.hpp"
    -
    47 #include "signal/delegate.hpp"
    -
    48 #include "signal/dispatcher.hpp"
    -
    49 #include "signal/emitter.hpp"
    -
    50 #include "signal/sigh.hpp"
    +
    12 #include "entity/component.hpp"
    +
    13 #include "entity/entity.hpp"
    +
    14 #include "entity/group.hpp"
    +
    15 #include "entity/handle.hpp"
    +
    16 #include "entity/helper.hpp"
    +
    17 #include "entity/observer.hpp"
    +
    18 #include "entity/organizer.hpp"
    +
    19 #include "entity/poly_storage.hpp"
    +
    20 #include "entity/registry.hpp"
    +
    21 #include "entity/runtime_view.hpp"
    +
    22 #include "entity/snapshot.hpp"
    +
    23 #include "entity/sparse_set.hpp"
    +
    24 #include "entity/storage.hpp"
    +
    25 #include "entity/utility.hpp"
    +
    26 #include "entity/view.hpp"
    +
    27 #include "locator/locator.hpp"
    +
    28 #include "meta/adl_pointer.hpp"
    +
    29 #include "meta/container.hpp"
    +
    30 #include "meta/ctx.hpp"
    +
    31 #include "meta/factory.hpp"
    +
    32 #include "meta/meta.hpp"
    +
    33 #include "meta/node.hpp"
    +
    34 #include "meta/pointer.hpp"
    +
    35 #include "meta/policy.hpp"
    +
    36 #include "meta/range.hpp"
    +
    37 #include "meta/resolve.hpp"
    +
    38 #include "meta/template.hpp"
    +
    39 #include "meta/type_traits.hpp"
    +
    40 #include "meta/utility.hpp"
    +
    41 #include "platform/android-ndk-r17.hpp"
    +
    42 #include "poly/poly.hpp"
    +
    43 #include "process/process.hpp"
    +
    44 #include "process/scheduler.hpp"
    +
    45 #include "resource/cache.hpp"
    +
    46 #include "resource/handle.hpp"
    +
    47 #include "resource/loader.hpp"
    +
    48 #include "signal/delegate.hpp"
    +
    49 #include "signal/dispatcher.hpp"
    +
    50 #include "signal/emitter.hpp"
    +
    51 #include "signal/sigh.hpp"
    diff --git a/factory_8hpp_source.html b/factory_8hpp_source.html index de1084c1c..63c3de735 100644 --- a/factory_8hpp_source.html +++ b/factory_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/factory.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -157,12 +157,12 @@ $(function() {
    110 
    111  static internal::meta_prop_node node{
    112  nullptr,
    -
    113  property,
    -
    114  property + 1u
    +
    113  property[0u],
    +
    114  property[1u]
    115  };
    116 
    117  entt::meta_any instance{std::forward<Key>(key)};
    -
    118  ENTT_ASSERT(!internal::find_if_not(&instance, *curr, &node));
    +
    118  ENTT_ASSERT(!internal::find_if_not(&instance, *curr, &node), "Duplicate key");
    119  property[0u] = std::move(instance);
    120  property[1u] = std::move(value);
    121 
    @@ -173,7 +173,7 @@ $(function() {
    126  }
    127 
    128 public:
    -
    133  meta_factory(internal::meta_prop_node **target) ENTT_NOEXCEPT
    +
    133  meta_factory(internal::meta_prop_node **target) ENTT_NOEXCEPT
    134  : curr{target}
    135  {}
    136 
    @@ -204,7 +204,7 @@ $(function() {
    191  auto type(const id_type id = type_hash<Type>::value()) {
    192  auto * const node = internal::meta_info<Type>::resolve();
    193 
    -
    194  ENTT_ASSERT(!internal::find_if_not(id, *internal::meta_context::global(), node));
    +
    194  ENTT_ASSERT(!internal::find_if_not(id, *internal::meta_context::global(), node), "Duplicate identifier");
    195  node->id = id;
    196 
    197  if(!internal::find_if(node, *internal::meta_context::global())) {
    @@ -216,7 +216,7 @@ $(function() {
    203  }
    204 
    213  template<typename Base>
    -
    214  auto base() ENTT_NOEXCEPT {
    +
    214  auto base() ENTT_NOEXCEPT {
    215  static_assert(std::is_base_of_v<Base, Type>, "Invalid base type");
    216  auto * const type = internal::meta_info<Type>::resolve();
    217 
    @@ -237,258 +237,282 @@ $(function() {
    232  return meta_factory<Type>{};
    233  }
    234 
    -
    244  template<typename To>
    -
    245  auto conv() ENTT_NOEXCEPT {
    -
    246  static_assert(std::is_convertible_v<Type, To>, "Could not convert to the required type");
    -
    247  auto * const type = internal::meta_info<Type>::resolve();
    -
    248 
    -
    249  static internal::meta_conv_node node{
    -
    250  type,
    -
    251  nullptr,
    -
    252  &internal::meta_info<To>::resolve,
    -
    253  [](const void *instance) -> meta_any {
    -
    254  return static_cast<To>(*static_cast<const Type *>(instance));
    -
    255  }
    -
    256  };
    -
    257 
    -
    258  if(!internal::find_if(&node, type->conv)) {
    -
    259  node.next = type->conv;
    -
    260  type->conv = &node;
    -
    261  }
    -
    262 
    -
    263  return meta_factory<Type>{};
    -
    264  }
    +
    247  template<auto Candidate>
    +
    248  std::enable_if_t<std::is_member_function_pointer_v<decltype(Candidate)>, meta_factory<Type>> conv() ENTT_NOEXCEPT {
    +
    249  using conv_type = std::invoke_result_t<decltype(Candidate), Type &>;
    +
    250  auto * const type = internal::meta_info<Type>::resolve();
    +
    251 
    +
    252  static internal::meta_conv_node node{
    +
    253  type,
    +
    254  nullptr,
    +
    255  &internal::meta_info<conv_type>::resolve,
    +
    256  [](const void *instance) -> meta_any {
    +
    257  return (static_cast<const Type *>(instance)->*Candidate)();
    +
    258  }
    +
    259  };
    +
    260 
    +
    261  if(!internal::find_if(&node, type->conv)) {
    +
    262  node.next = type->conv;
    +
    263  type->conv = &node;
    +
    264  }
    265 
    -
    278  template<auto Candidate>
    -
    279  auto conv() ENTT_NOEXCEPT {
    -
    280  using conv_type = std::invoke_result_t<decltype(Candidate), Type &>;
    -
    281  auto * const type = internal::meta_info<Type>::resolve();
    -
    282 
    -
    283  static internal::meta_conv_node node{
    -
    284  type,
    -
    285  nullptr,
    -
    286  &internal::meta_info<conv_type>::resolve,
    -
    287  [](const void *instance) -> meta_any {
    -
    288  return std::invoke(Candidate, *static_cast<const Type *>(instance));
    -
    289  }
    -
    290  };
    +
    266  return meta_factory<Type>{};
    +
    267  }
    +
    268 
    +
    270  template<auto Candidate>
    +
    271  std::enable_if_t<!std::is_member_function_pointer_v<decltype(Candidate)>, meta_factory<Type>> conv() ENTT_NOEXCEPT {
    +
    272  using conv_type = std::invoke_result_t<decltype(Candidate), Type &>;
    +
    273  auto * const type = internal::meta_info<Type>::resolve();
    +
    274 
    +
    275  static internal::meta_conv_node node{
    +
    276  type,
    +
    277  nullptr,
    +
    278  &internal::meta_info<conv_type>::resolve,
    +
    279  [](const void *instance) -> meta_any {
    +
    280  return Candidate(*static_cast<const Type *>(instance));
    +
    281  }
    +
    282  };
    +
    283 
    +
    284  if(!internal::find_if(&node, type->conv)) {
    +
    285  node.next = type->conv;
    +
    286  type->conv = &node;
    +
    287  }
    +
    288 
    +
    289  return meta_factory<Type>{};
    +
    290  }
    291 
    -
    292  if(!internal::find_if(&node, type->conv)) {
    -
    293  node.next = type->conv;
    -
    294  type->conv = &node;
    -
    295  }
    -
    296 
    -
    297  return meta_factory<Type>{};
    -
    298  }
    -
    299 
    -
    313  template<auto Candidate, typename Policy = as_is_t>
    -
    314  auto ctor() ENTT_NOEXCEPT {
    -
    315  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    -
    316  static_assert(std::is_same_v<std::remove_cv_t<std::remove_reference_t<typename descriptor::return_type>>, Type>, "The function doesn't return an object of the required type");
    -
    317  auto * const type = internal::meta_info<Type>::resolve();
    -
    318 
    -
    319  static internal::meta_ctor_node node{
    -
    320  type,
    -
    321  nullptr,
    -
    322  nullptr,
    -
    323  descriptor::args_type::size,
    -
    324  [](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
    -
    325  return meta_arg(typename descriptor::args_type{}, index);
    -
    326  },
    -
    327  [](meta_any * const args) {
    -
    328  return meta_invoke<Type, Candidate, Policy>({}, args, std::make_index_sequence<descriptor::args_type::size>{});
    -
    329  }
    -
    330  };
    -
    331 
    -
    332  if(!internal::find_if(&node, type->ctor)) {
    -
    333  node.next = type->ctor;
    -
    334  type->ctor = &node;
    -
    335  }
    -
    336 
    -
    337  return meta_factory<Type, std::integral_constant<decltype(Candidate), Candidate>>{&node.prop};
    -
    338  }
    -
    339 
    -
    350  template<typename... Args>
    -
    351  auto ctor() ENTT_NOEXCEPT {
    -
    352  using descriptor = meta_function_helper_t<Type, Type(*)(Args...)>;
    -
    353  auto * const type = internal::meta_info<Type>::resolve();
    +
    301  template<typename To>
    +
    302  auto conv() ENTT_NOEXCEPT {
    +
    303  static_assert(std::is_convertible_v<Type, To>, "Could not convert to the required type");
    +
    304  auto * const type = internal::meta_info<Type>::resolve();
    +
    305 
    +
    306  static internal::meta_conv_node node{
    +
    307  type,
    +
    308  nullptr,
    +
    309  &internal::meta_info<To>::resolve,
    +
    310  [](const void *instance) -> meta_any {
    +
    311  return static_cast<To>(*static_cast<const Type *>(instance));
    +
    312  }
    +
    313  };
    +
    314 
    +
    315  if(!internal::find_if(&node, type->conv)) {
    +
    316  node.next = type->conv;
    +
    317  type->conv = &node;
    +
    318  }
    +
    319 
    +
    320  return meta_factory<Type>{};
    +
    321  }
    +
    322 
    +
    336  template<auto Candidate, typename Policy = as_is_t>
    +
    337  auto ctor() ENTT_NOEXCEPT {
    +
    338  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    +
    339  static_assert(std::is_same_v<std::decay_t<typename descriptor::return_type>, Type>, "The function doesn't return an object of the required type");
    +
    340  auto * const type = internal::meta_info<Type>::resolve();
    +
    341 
    +
    342  static internal::meta_ctor_node node{
    +
    343  type,
    +
    344  nullptr,
    +
    345  nullptr,
    +
    346  descriptor::args_type::size,
    +
    347  [](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
    +
    348  return meta_arg(typename descriptor::args_type{}, index);
    +
    349  },
    +
    350  [](meta_any * const args) {
    +
    351  return meta_invoke<Type, Candidate, Policy>({}, args, std::make_index_sequence<descriptor::args_type::size>{});
    +
    352  }
    +
    353  };
    354 
    -
    355  static internal::meta_ctor_node node{
    -
    356  type,
    -
    357  nullptr,
    -
    358  nullptr,
    -
    359  descriptor::args_type::size,
    -
    360  [](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
    -
    361  return meta_arg(typename descriptor::args_type{}, index);
    -
    362  },
    -
    363  [](meta_any * const args) {
    -
    364  return meta_construct<Type, Args...>(args, std::make_index_sequence<descriptor::args_type::size>{});
    -
    365  }
    -
    366  };
    -
    367 
    -
    368  if(!internal::find_if(&node, type->ctor)) {
    -
    369  node.next = type->ctor;
    -
    370  type->ctor = &node;
    -
    371  }
    -
    372 
    -
    373  return meta_factory<Type, Type(Args...)>{&node.prop};
    -
    374  }
    -
    375 
    -
    392  template<auto Func>
    -
    393  auto dtor() ENTT_NOEXCEPT {
    -
    394  static_assert(std::is_invocable_v<decltype(Func), Type &>, "The function doesn't accept an object of the type provided");
    -
    395  auto * const type = internal::meta_info<Type>::resolve();
    -
    396 
    -
    397  type->dtor = [](void *instance) {
    -
    398  std::invoke(Func, *static_cast<Type *>(instance));
    -
    399  };
    -
    400 
    -
    401  return meta_factory<Type>{};
    -
    402  }
    -
    403 
    -
    417  template<auto Data, typename Policy = as_is_t>
    -
    418  auto data(const id_type id) ENTT_NOEXCEPT {
    -
    419  if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    -
    420  return data<Data, Data, Policy>(id);
    -
    421  } else {
    -
    422  using data_type = std::remove_pointer_t<decltype(Data)>;
    -
    423  auto * const type = internal::meta_info<Type>::resolve();
    -
    424 
    -
    425  static internal::meta_data_node node{
    -
    426  {},
    -
    427  type,
    -
    428  nullptr,
    -
    429  nullptr,
    -
    430  std::is_same_v<Type, data_type> || std::is_const_v<data_type>,
    -
    431  true,
    -
    432  &internal::meta_info<data_type>::resolve,
    -
    433  &meta_setter<Type, Data>,
    -
    434  &meta_getter<Type, Data, Policy>
    -
    435  };
    -
    436 
    -
    437  ENTT_ASSERT(!internal::find_if_not(id, type->data, &node));
    -
    438  node.id = id;
    -
    439 
    -
    440  if(!internal::find_if(&node, type->data)) {
    -
    441  node.next = type->data;
    -
    442  type->data = &node;
    -
    443  }
    -
    444 
    -
    445  return meta_factory<Type, std::integral_constant<decltype(Data), Data>>{&node.prop};
    -
    446  }
    -
    447  }
    -
    448 
    -
    469  template<auto Setter, auto Getter, typename Policy = as_is_t>
    -
    470  auto data(const id_type id) ENTT_NOEXCEPT {
    -
    471  using underlying_type = std::remove_reference_t<std::invoke_result_t<decltype(Getter), Type &>>;
    -
    472  auto * const type = internal::meta_info<Type>::resolve();
    -
    473 
    -
    474  static internal::meta_data_node node{
    -
    475  {},
    -
    476  type,
    -
    477  nullptr,
    -
    478  nullptr,
    -
    479  std::is_same_v<decltype(Setter), std::nullptr_t> || (std::is_member_object_pointer_v<decltype(Setter)> && std::is_const_v<underlying_type>),
    -
    480  false,
    -
    481  &internal::meta_info<underlying_type>::resolve,
    -
    482  &meta_setter<Type, Setter>,
    -
    483  &meta_getter<Type, Getter, Policy>
    -
    484  };
    -
    485 
    -
    486  ENTT_ASSERT(!internal::find_if_not(id, type->data, &node));
    -
    487  node.id = id;
    -
    488 
    -
    489  if(!internal::find_if(&node, type->data)) {
    -
    490  node.next = type->data;
    -
    491  type->data = &node;
    -
    492  }
    -
    493 
    -
    494  return meta_factory<Type, std::integral_constant<decltype(Setter), Setter>, std::integral_constant<decltype(Getter), Getter>>{&node.prop};
    -
    495  }
    +
    355  if(!internal::find_if(&node, type->ctor)) {
    +
    356  node.next = type->ctor;
    +
    357  type->ctor = &node;
    +
    358  }
    +
    359 
    +
    360  return meta_factory<Type, std::integral_constant<decltype(Candidate), Candidate>>{&node.prop};
    +
    361  }
    +
    362 
    +
    373  template<typename... Args>
    +
    374  auto ctor() ENTT_NOEXCEPT {
    +
    375  using descriptor = meta_function_helper_t<Type, Type(*)(Args...)>;
    +
    376  auto * const type = internal::meta_info<Type>::resolve();
    +
    377 
    +
    378  static internal::meta_ctor_node node{
    +
    379  type,
    +
    380  nullptr,
    +
    381  nullptr,
    +
    382  descriptor::args_type::size,
    +
    383  [](const typename internal::meta_ctor_node::size_type index) ENTT_NOEXCEPT {
    +
    384  return meta_arg(typename descriptor::args_type{}, index);
    +
    385  },
    +
    386  [](meta_any * const args) {
    +
    387  return meta_construct<Type, Args...>(args, std::make_index_sequence<descriptor::args_type::size>{});
    +
    388  }
    +
    389  };
    +
    390 
    +
    391  if(!internal::find_if(&node, type->ctor)) {
    +
    392  node.next = type->ctor;
    +
    393  type->ctor = &node;
    +
    394  }
    +
    395 
    +
    396  return meta_factory<Type, Type(Args...)>{&node.prop};
    +
    397  }
    +
    398 
    +
    415  template<auto Func>
    +
    416  auto dtor() ENTT_NOEXCEPT {
    +
    417  static_assert(std::is_invocable_v<decltype(Func), Type &>, "The function doesn't accept an object of the type provided");
    +
    418  auto * const type = internal::meta_info<Type>::resolve();
    +
    419 
    +
    420  type->dtor = [](void *instance) {
    +
    421  Func(*static_cast<Type *>(instance));
    +
    422  };
    +
    423 
    +
    424  return meta_factory<Type>{};
    +
    425  }
    +
    426 
    +
    440  template<auto Data, typename Policy = as_is_t>
    +
    441  auto data(const id_type id) ENTT_NOEXCEPT {
    +
    442  if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    +
    443  return data<Data, Data, Policy>(id);
    +
    444  } else {
    +
    445  using data_type = std::remove_pointer_t<decltype(Data)>;
    +
    446  auto * const type = internal::meta_info<Type>::resolve();
    +
    447 
    +
    448  static internal::meta_data_node node{
    +
    449  {},
    +
    450  type,
    +
    451  nullptr,
    +
    452  nullptr,
    +
    453  std::is_same_v<Type, data_type> || std::is_const_v<data_type>,
    +
    454  true,
    +
    455  &internal::meta_info<data_type>::resolve,
    +
    456  &meta_setter<Type, Data>,
    +
    457  &meta_getter<Type, Data, Policy>
    +
    458  };
    +
    459 
    +
    460  ENTT_ASSERT(!internal::find_if_not(id, type->data, &node), "Duplicate identifier");
    +
    461  node.id = id;
    +
    462 
    +
    463  if(!internal::find_if(&node, type->data)) {
    +
    464  node.next = type->data;
    +
    465  type->data = &node;
    +
    466  }
    +
    467 
    +
    468  return meta_factory<Type, std::integral_constant<decltype(Data), Data>>{&node.prop};
    +
    469  }
    +
    470  }
    +
    471 
    +
    492  template<auto Setter, auto Getter, typename Policy = as_is_t>
    +
    493  auto data(const id_type id) ENTT_NOEXCEPT {
    +
    494  using underlying_type = std::remove_reference_t<std::invoke_result_t<decltype(Getter), Type &>>;
    +
    495  auto * const type = internal::meta_info<Type>::resolve();
    496 
    -
    510  template<auto Candidate, typename Policy = as_is_t>
    -
    511  auto func(const id_type id) ENTT_NOEXCEPT {
    -
    512  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    -
    513  auto * const type = internal::meta_info<Type>::resolve();
    -
    514 
    -
    515  static internal::meta_func_node node{
    -
    516  {},
    -
    517  type,
    -
    518  nullptr,
    -
    519  nullptr,
    -
    520  descriptor::args_type::size,
    -
    521  descriptor::is_const,
    -
    522  descriptor::is_static,
    -
    523  &internal::meta_info<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, typename descriptor::return_type>>::resolve,
    -
    524  [](const typename internal::meta_func_node::size_type index) ENTT_NOEXCEPT {
    -
    525  return meta_arg(typename descriptor::args_type{}, index);
    -
    526  },
    -
    527  [](meta_handle instance, meta_any *args) {
    -
    528  return meta_invoke<Type, Candidate, Policy>(std::move(instance), args, std::make_index_sequence<descriptor::args_type::size>{});
    -
    529  }
    -
    530  };
    -
    531 
    -
    532  for(auto *it = &type->func; *it; it = &(*it)->next) {
    -
    533  if(*it == &node) {
    -
    534  *it = node.next;
    -
    535  break;
    -
    536  }
    -
    537  }
    -
    538 
    -
    539  internal::meta_func_node **it = &type->func;
    -
    540  for(; *it && (*it)->id != id; it = &(*it)->next);
    -
    541  for(; *it && (*it)->id == id && (*it)->arity < node.arity; it = &(*it)->next);
    -
    542 
    -
    543  node.id = id;
    -
    544  node.next = *it;
    -
    545  *it = &node;
    -
    546 
    -
    547  return meta_factory<Type, std::integral_constant<decltype(Candidate), Candidate>>{&node.prop};
    -
    548  }
    -
    549 };
    -
    550 
    -
    551 
    -
    563 template<typename Type>
    -
    564 [[nodiscard]] auto meta() ENTT_NOEXCEPT {
    -
    565  auto * const node = internal::meta_info<Type>::resolve();
    -
    566  // extended meta factory to allow assigning properties to opaque meta types
    -
    567  return meta_factory<Type, Type>{&node->prop};
    -
    568 }
    +
    497  static internal::meta_data_node node{
    +
    498  {},
    +
    499  type,
    +
    500  nullptr,
    +
    501  nullptr,
    +
    502  std::is_same_v<decltype(Setter), std::nullptr_t> || (std::is_member_object_pointer_v<decltype(Setter)> && std::is_const_v<underlying_type>),
    +
    503  false,
    +
    504  &internal::meta_info<underlying_type>::resolve,
    +
    505  &meta_setter<Type, Setter>,
    +
    506  &meta_getter<Type, Getter, Policy>
    +
    507  };
    +
    508 
    +
    509  ENTT_ASSERT(!internal::find_if_not(id, type->data, &node), "Duplicate identifier");
    +
    510  node.id = id;
    +
    511 
    +
    512  if(!internal::find_if(&node, type->data)) {
    +
    513  node.next = type->data;
    +
    514  type->data = &node;
    +
    515  }
    +
    516 
    +
    517  return meta_factory<Type, std::integral_constant<decltype(Setter), Setter>, std::integral_constant<decltype(Getter), Getter>>{&node.prop};
    +
    518  }
    +
    519 
    +
    533  template<auto Candidate, typename Policy = as_is_t>
    +
    534  auto func(const id_type id) ENTT_NOEXCEPT {
    +
    535  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    +
    536  auto * const type = internal::meta_info<Type>::resolve();
    +
    537 
    +
    538  static internal::meta_func_node node{
    +
    539  {},
    +
    540  type,
    +
    541  nullptr,
    +
    542  nullptr,
    +
    543  descriptor::args_type::size,
    +
    544  descriptor::is_const,
    +
    545  descriptor::is_static,
    +
    546  &internal::meta_info<std::conditional_t<std::is_same_v<Policy, as_void_t>, void, typename descriptor::return_type>>::resolve,
    +
    547  [](const typename internal::meta_func_node::size_type index) ENTT_NOEXCEPT {
    +
    548  return meta_arg(typename descriptor::args_type{}, index);
    +
    549  },
    +
    550  [](meta_handle instance, meta_any *args) {
    +
    551  return meta_invoke<Type, Candidate, Policy>(std::move(instance), args, std::make_index_sequence<descriptor::args_type::size>{});
    +
    552  }
    +
    553  };
    +
    554 
    +
    555  for(auto *it = &type->func; *it; it = &(*it)->next) {
    +
    556  if(*it == &node) {
    +
    557  *it = node.next;
    +
    558  break;
    +
    559  }
    +
    560  }
    +
    561 
    +
    562  internal::meta_func_node **it = &type->func;
    +
    563  for(; *it && (*it)->id != id; it = &(*it)->next);
    +
    564  for(; *it && (*it)->id == id && (*it)->arity < node.arity; it = &(*it)->next);
    +
    565 
    +
    566  node.id = id;
    +
    567  node.next = *it;
    +
    568  *it = &node;
    569 
    -
    570 
    -
    571 }
    -
    572 
    +
    570  return meta_factory<Type, std::integral_constant<decltype(Candidate), Candidate>>{&node.prop};
    +
    571  }
    +
    572 };
    573 
    -
    574 #endif
    - -
    entt::meta_factory< Type, Spec... >::meta_factory
    meta_factory(internal::meta_prop_node **target) noexcept
    Constructs an extended factory from a given node.
    Definition: factory.hpp:133
    -
    entt::meta_factory< Type >::conv
    auto conv() noexcept
    Assigns a meta conversion function to a meta type.
    Definition: factory.hpp:245
    -
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:159
    -
    entt::meta_factory< Type >::ctor
    auto ctor() noexcept
    Assigns a meta constructor to a meta type.
    Definition: factory.hpp:314
    -
    entt::meta_construct
    meta_any meta_construct(meta_any *const args, std::index_sequence< Index... >)
    Constructs an instance given a list of erased parameters, if possible.
    Definition: utility.hpp:142
    -
    entt::meta_factory
    Meta factory to be used for reflection purposes.
    Definition: factory.hpp:65
    -
    entt::meta_factory< Type >::base
    auto base() noexcept
    Assigns a meta base to a meta type.
    Definition: factory.hpp:214
    -
    entt::meta_factory< Type >
    Basic meta factory to be used for reflection purposes.
    Definition: factory.hpp:185
    -
    entt::meta
    auto meta() noexcept
    Utility function to use for reflection.
    Definition: factory.hpp:564
    -
    entt::meta_factory< Type >::data
    auto data(const id_type id) noexcept
    Assigns a meta data to a meta type by means of its setter and getter.
    Definition: factory.hpp:470
    -
    entt::type_hash
    Type hash.
    Definition: type_info.hpp:111
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::meta_factory< Type >::dtor
    auto dtor() noexcept
    Assigns a meta destructor to a meta type.
    Definition: factory.hpp:393
    -
    entt::meta_factory< Type >::type
    auto type(const id_type id=type_hash< Type >::value())
    Makes a meta type searchable.
    Definition: factory.hpp:191
    -
    entt::meta_factory< Type >::ctor
    auto ctor() noexcept
    Assigns a meta constructor to a meta type.
    Definition: factory.hpp:351
    -
    entt::meta_factory< Type, Spec... >::prop
    auto prop(PropertyOrKey &&property_or_key, Value &&... value) &&
    Assigns a property to the last meta object created.
    Definition: factory.hpp:149
    +
    574 
    +
    586 template<typename Type>
    +
    587 [[nodiscard]] auto meta() ENTT_NOEXCEPT {
    +
    588  auto * const node = internal::meta_info<Type>::resolve();
    +
    589  // extended meta factory to allow assigning properties to opaque meta types
    +
    590  return meta_factory<Type, Type>{&node->prop};
    +
    591 }
    +
    592 
    +
    593 
    +
    594 }
    +
    595 
    +
    596 
    +
    597 #endif
    +
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:158
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::resolve
    meta_type resolve() noexcept
    Returns the meta type associated with a given type.
    Definition: resolve.hpp:22
    -
    entt::meta_factory< Type >::data
    auto data(const id_type id) noexcept
    Assigns a meta data to a meta type.
    Definition: factory.hpp:418
    -
    entt::meta_factory< Type >::func
    auto func(const id_type id) noexcept
    Assigns a meta funcion to a meta type.
    Definition: factory.hpp:511
    -
    entt::choice_t< 0 >
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:30
    -
    entt::meta_function_helper_t
    typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
    Helper type.
    Definition: utility.hpp:119
    -
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:588
    -
    entt::choice_t
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:25
    +
    entt::meta_construct
    meta_any meta_construct(meta_any *const args, std::index_sequence< Index... >)
    Constructs an instance given a list of erased parameters, if possible.
    Definition: utility.hpp:141
    +
    entt::resolve
    meta_type resolve()
    Returns the meta type associated with a given type.
    Definition: resolve.hpp:22
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    entt::meta
    auto meta()
    Utility function to use for reflection.
    Definition: factory.hpp:587
    +
    entt::meta_function_helper_t
    typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
    Helper type.
    Definition: utility.hpp:118
    +
    entt::choice_t< 0 >
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:31
    +
    entt::choice_t
    Utility class to disambiguate overloaded functions.
    Definition: type_traits.hpp:26
    entt::meta_factory< Type, Spec... >::props
    auto props(Property... property) &&
    Assigns properties to the last meta object created.
    Definition: factory.hpp:170
    +
    entt::meta_factory< Type, Spec... >::prop
    auto prop(PropertyOrKey &&property_or_key, Value &&... value) &&
    Assigns a property to the last meta object created.
    Definition: factory.hpp:149
    +
    entt::meta_factory< Type, Spec... >::meta_factory
    meta_factory(internal::meta_prop_node **target)
    Constructs an extended factory from a given node.
    Definition: factory.hpp:133
    +
    entt::meta_factory< Type >
    Basic meta factory to be used for reflection purposes.
    Definition: factory.hpp:185
    +
    entt::meta_factory< Type >::conv
    std::enable_if_t< std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv()
    Assigns a meta conversion function to a meta type.
    Definition: factory.hpp:248
    +
    entt::meta_factory< Type >::type
    auto type(const id_type id=type_hash< Type >::value())
    Makes a meta type searchable.
    Definition: factory.hpp:191
    +
    entt::meta_factory< Type >::data
    auto data(const id_type id)
    Assigns a meta data to a meta type by means of its setter and getter.
    Definition: factory.hpp:493
    +
    entt::meta_factory< Type >::conv
    std::enable_if_t<!std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv()
    Assigns a meta conversion function to a meta type.
    Definition: factory.hpp:271
    +
    entt::meta_factory< Type >::base
    auto base()
    Assigns a meta base to a meta type.
    Definition: factory.hpp:214
    +
    entt::meta_factory< Type >::ctor
    auto ctor()
    Assigns a meta constructor to a meta type.
    Definition: factory.hpp:374
    +
    entt::meta_factory< Type >::conv
    auto conv()
    Assigns a meta conversion function to a meta type.
    Definition: factory.hpp:302
    +
    entt::meta_factory< Type >::ctor
    auto ctor()
    Assigns a meta constructor to a meta type.
    Definition: factory.hpp:337
    +
    entt::meta_factory< Type >::func
    auto func(const id_type id)
    Assigns a meta funcion to a meta type.
    Definition: factory.hpp:534
    +
    entt::meta_factory< Type >::data
    auto data(const id_type id)
    Assigns a meta data to a meta type.
    Definition: factory.hpp:441
    +
    entt::meta_factory< Type >::dtor
    auto dtor()
    Assigns a meta destructor to a meta type.
    Definition: factory.hpp:416
    +
    entt::meta_factory
    Meta factory to be used for reflection purposes.
    Definition: factory.hpp:65
    +
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:625
    +
    entt::type_hash
    Type hash.
    Definition: type_info.hpp:111
    + diff --git a/family_8hpp_source.html b/family_8hpp_source.html index 6a2f86fb5..23c362079 100644 --- a/family_8hpp_source.html +++ b/family_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/family.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,15 +98,15 @@ $(function() {
    35 
    36 
    37 #endif
    - -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::family
    Dynamic identifier generator.
    Definition: family.hpp:20
    entt::family::family_type
    id_type family_type
    Unsigned integer type.
    Definition: family.hpp:25
    entt::identifier
    Types identifiers.
    Definition: ident.hpp:44
    -
    entt::family
    Dynamic identifier generator.
    Definition: family.hpp:20
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    + diff --git a/files.html b/files.html index 192043954..30bc5c1bd 100644 --- a/files.html +++ b/files.html @@ -3,7 +3,7 @@ - + EnTT: File List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,64 +86,65 @@ $(function() {  type_traits.hpp  utility.hpp   entity - entity.hpp - fwd.hpp - group.hpp - handle.hpp - helper.hpp - observer.hpp - organizer.hpp - poly_storage.hpp - registry.hpp - runtime_view.hpp - snapshot.hpp - sparse_set.hpp - storage.hpp - utility.hpp - view.hpp -  locator - locator.hpp -  meta - adl_pointer.hpp - container.hpp - ctx.hpp - factory.hpp - meta.hpp - node.hpp - pointer.hpp - policy.hpp - range.hpp - resolve.hpp - template.hpp - type_traits.hpp - utility.hpp -  platform - android-ndk-r17.hpp -  poly - fwd.hpp - poly.hpp -  process - process.hpp - scheduler.hpp -  resource - cache.hpp - fwd.hpp - handle.hpp - loader.hpp -  signal - delegate.hpp - dispatcher.hpp - emitter.hpp - fwd.hpp - sigh.hpp - entt.hpp - fwd.hpp + component.hpp + entity.hpp + fwd.hpp + group.hpp + handle.hpp + helper.hpp + observer.hpp + organizer.hpp + poly_storage.hpp + registry.hpp + runtime_view.hpp + snapshot.hpp + sparse_set.hpp + storage.hpp + utility.hpp + view.hpp +  locator + locator.hpp +  meta + adl_pointer.hpp + container.hpp + ctx.hpp + factory.hpp + meta.hpp + node.hpp + pointer.hpp + policy.hpp + range.hpp + resolve.hpp + template.hpp + type_traits.hpp + utility.hpp +  platform + android-ndk-r17.hpp +  poly + fwd.hpp + poly.hpp +  process + process.hpp + scheduler.hpp +  resource + cache.hpp + fwd.hpp + handle.hpp + loader.hpp +  signal + delegate.hpp + dispatcher.hpp + emitter.hpp + fwd.hpp + sigh.hpp + entt.hpp + fwd.hpp diff --git a/functions.html b/functions.html index 32b21ff66..5910de6c6 100644 --- a/functions.html +++ b/functions.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,24 +69,32 @@ $(function() { : entt::process< Derived, Delta > , entt::scheduler< Delta > +
  • alignment +: entt::basic_any< Len, Align > +
  • alive() : entt::basic_registry< Entity > -, entt::process< Derived, Delta > +, entt::process< Derived, Delta >
  • all_of() : entt::basic_handle< Entity, Type > , entt::basic_registry< Entity >
  • +
  • allocator_type +: entt::basic_sparse_set< Entity, Allocator > +, entt::basic_storage_impl< Entity, Type, Allocator, typename > +, entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > +
  • allow_cast() -: entt::meta_any +: entt::meta_any
  • any_of() : entt::basic_handle< Entity, Type > , entt::basic_registry< Entity >
  • arg() -: entt::meta_ctor -, entt::meta_func +: entt::meta_ctor +, entt::meta_func
  • args_type : entt::meta_function_descriptor< Type, Ret(*)(Args...)> @@ -95,31 +103,31 @@ $(function() { , entt::meta_template_traits< Clazz< Args... > >
  • arity() -: entt::meta_ctor -, entt::meta_func +: entt::meta_ctor +, entt::meta_func
  • as_associative_container() -: entt::meta_any +: entt::meta_any
  • as_group() -: entt::as_group< Entity > +: entt::as_group< Entity >
  • as_ref() -: entt::basic_any< Len, Align > -, entt::basic_poly< Concept, Len, Align > -, entt::meta_any +: entt::basic_any< Len, Align > +, entt::basic_poly< Concept, Len, Align > +, entt::meta_any
  • as_sequence_container() -: entt::meta_any +: entt::meta_any
  • as_view() -: entt::as_view< Entity > +: entt::as_view< Entity >
  • assign() : entt::basic_registry< Entity >
  • at() -: entt::basic_sparse_set< Entity > +: entt::basic_sparse_set< Entity, Allocator >
  • attach() : entt::scheduler< Delta > @@ -128,7 +136,7 @@ $(function() { diff --git a/functions_b.html b/functions_b.html index 5bba05949..94f996b21 100644 --- a/functions_b.html +++ b/functions_b.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -68,37 +68,37 @@ $(function() {
  • back() : entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > , entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > -, entt::basic_view< Entity, exclude_t< Exclude... >, Component... > -, entt::basic_view< Entity, exclude_t<>, Component > +, entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > +, entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
  • base() -: entt::meta_factory< Type > -, entt::meta_type +: entt::meta_factory< Type > +, entt::meta_type
  • base_node_type : entt::meta_type
  • basic_any() -: entt::basic_any< Len, Align > +: entt::basic_any< Len, Align >
  • basic_continuous_loader() -: entt::basic_continuous_loader< Entity > +: entt::basic_continuous_loader< Entity >
  • basic_group() -: entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > -, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > +: entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > +, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
  • basic_handle() -: entt::basic_handle< Entity, Type > +: entt::basic_handle< Entity, Type >
  • basic_hashed_string() -: entt::basic_hashed_string< Char > +: entt::basic_hashed_string< Char >
  • basic_observer() : entt::basic_observer< Entity >
  • basic_poly() -: entt::basic_poly< Concept, Len, Align > +: entt::basic_poly< Concept, Len, Align >
  • basic_registry() : entt::basic_registry< Entity > @@ -108,46 +108,50 @@ $(function() { , entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
  • basic_runtime_view() -: entt::basic_runtime_view< Entity > +: entt::basic_runtime_view< Entity >
  • basic_snapshot() -: entt::basic_snapshot< Entity > +: entt::basic_snapshot< Entity >
  • basic_snapshot_loader() -: entt::basic_snapshot_loader< Entity > +: entt::basic_snapshot_loader< Entity >
  • basic_sparse_set() -: entt::basic_sparse_set< Entity > +: entt::basic_sparse_set< Entity, Allocator >
  • -
  • basic_view() -: entt::basic_view< Entity, exclude_t< Exclude... >, Component... > -, entt::basic_view< Entity, exclude_t<>, Component > +
  • basic_storage_impl() +: entt::basic_storage_impl< Entity, Type, Allocator, typename > +, entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > +
  • +
  • basic_view_impl() +: entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > +, entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
  • before() -: entt::sink< Ret(Args...)> +: entt::sink< Ret(Args...)>
  • begin() : entt::basic_container< Container > -, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > -, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > -, entt::basic_observer< Entity > +, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > +, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > +, entt::basic_observer< Entity > , entt::basic_runtime_view< Entity > -, entt::basic_sparse_set< Entity > -, entt::basic_storage< Entity, Type, typename > -, entt::basic_view< Entity, exclude_t< Exclude... >, Component... > -, entt::basic_view< Entity, exclude_t<>, Component > +, entt::basic_sparse_set< Entity, Allocator > +, entt::basic_storage_impl< Entity, Type, Allocator, typename > +, entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > +, entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > , entt::meta_associative_container , entt::meta_range< Type, Node > , entt::meta_sequence_container
  • bind() -: entt::meta_ctx +: entt::meta_ctx
  • diff --git a/functions_c.html b/functions_c.html index b90d9e208..8fd526243 100644 --- a/functions_c.html +++ b/functions_c.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,23 +66,24 @@ $(function() {

    - c -

    diff --git a/functions_func_c.html b/functions_func_c.html index 1615eb99d..551b2026e 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,23 +66,24 @@ $(function() {

    - c -

    diff --git a/functions_func_h.html b/functions_func_h.html index e11c5be64..4ded909f0 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,13 +69,13 @@ $(function() { : entt::resource_cache< Resource >
  • hash() -: entt::type_info +: entt::type_info
  • diff --git a/functions_func_i.html b/functions_func_i.html index f28a74a19..6e6b4d826 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,22 +66,26 @@ $(function() {

    - i -

    diff --git a/functions_func_k.html b/functions_func_k.html index 3bb45d76f..6ddf41631 100644 --- a/functions_func_k.html +++ b/functions_func_k.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,16 +69,16 @@ $(function() { : entt::meta_prop
  • key_only() -: entt::meta_associative_container +: entt::meta_associative_container
  • key_type() -: entt::meta_associative_container +: entt::meta_associative_container
  • diff --git a/functions_func_l.html b/functions_func_l.html index 23a8848d3..c1be265a8 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_m.html b/functions_func_m.html index 1e9ca7904..831c2f91f 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,53 +66,57 @@ $(function() {

    - m -

    diff --git a/functions_func_n.html b/functions_func_n.html index 019d78dd2..68dce7985 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,14 +66,14 @@ $(function() {

    - n -

    diff --git a/functions_func_o.html b/functions_func_o.html index 047de7c88..cd7f47243 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -70,15 +70,15 @@ $(function() {
  • on_construct() : entt::basic_registry< Entity > -, entt::sigh_storage_mixin< Type > +, entt::sigh_storage_mixin< Type >
  • on_destroy() : entt::basic_registry< Entity > -, entt::sigh_storage_mixin< Type > +, entt::sigh_storage_mixin< Type >
  • on_update() : entt::basic_registry< Entity > -, entt::sigh_storage_mixin< Type > +, entt::sigh_storage_mixin< Type >
  • once() : entt::emitter< Derived > @@ -87,133 +87,142 @@ $(function() { : entt::as_group< Entity >
  • operator basic_handle< Other, Args... >() -: entt::basic_handle< Entity, Type > +: entt::basic_handle< Entity, Type >
  • operator basic_view< entity_type, Exclude, Component... >() : entt::as_view< Entity >
  • operator bool() -: entt::basic_any< Len, Align > -, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > -, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > -, entt::basic_handle< Entity, Type > -, entt::basic_poly< Concept, Len, Align > -, entt::basic_view< Entity, exclude_t< Exclude... >, Component... > -, entt::basic_view< Entity, exclude_t<>, Component > -, entt::connection -, entt::delegate< Ret(Args...)> -, entt::meta_any -, entt::meta_associative_container::meta_iterator -, entt::meta_associative_container -, entt::meta_ctor -, entt::meta_data -, entt::meta_func -, entt::meta_handle -, entt::meta_prop -, entt::meta_sequence_container::meta_iterator -, entt::meta_sequence_container -, entt::meta_type -, entt::resource_handle< Resource > -, entt::scoped_connection -, entt::type_info +: entt::basic_any< Len, Align > +, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > +, entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > +, entt::basic_handle< Entity, Type > +, entt::basic_poly< Concept, Len, Align > +, entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > +, entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > +, entt::connection +, entt::delegate< Ret(Args...)> +, entt::meta_any +, entt::meta_associative_container::meta_iterator +, entt::meta_associative_container +, entt::meta_ctor +, entt::meta_data +, entt::meta_func +, entt::meta_handle +, entt::meta_prop +, entt::meta_sequence_container::meta_iterator +, entt::meta_sequence_container +, entt::meta_type +, entt::resource_handle< Resource > +, entt::scoped_connection +, entt::type_info
  • operator const Resource &() -: entt::resource_handle< Resource > +: entt::resource_handle< Resource >
  • operator const value_type *() -: entt::basic_hashed_string< Char > +: entt::basic_hashed_string< Char >
  • operator Entity() -: entt::null_t +: entt::null_t +, entt::tombstone_t
  • operator entity_type() -: entt::basic_handle< Entity, Type > +: entt::basic_handle< Entity, Type >
  • operator hash_type() -: entt::basic_hashed_string< Char > +: entt::basic_hashed_string< Char >
  • operator id_type() -: entt::type_hash< Type, typename > -, entt::type_seq< Type, typename > +: entt::type_hash< Type, typename > +, entt::type_seq< Type, typename >
  • operator Resource &() -: entt::resource_handle< Resource > +: entt::resource_handle< Resource >
  • operator std::string_view() -: entt::type_name< Type, typename > +: entt::type_name< Type, typename >
  • operator Type() -: entt::monostate< id_type > +: entt::monostate< id_type >
  • operator Type &&() : entt::poly_inspector
  • operator!=() -: entt::meta_associative_container::meta_iterator -, entt::meta_sequence_container::meta_iterator -, entt::null_t +: entt::meta_associative_container::meta_iterator +, entt::meta_sequence_container::meta_iterator +, entt::null_t +, entt::tombstone_t
  • operator()() : entt::delegate< Ret(Args...)> -, entt::identity +, entt::identity , entt::insertion_sort , entt::radix_sort< Bit, N > , entt::std_sort , entt::y_combinator< Func >
  • operator*() -: entt::meta_any +: entt::meta_any , entt::meta_associative_container::meta_iterator , entt::meta_sequence_container::meta_iterator -, entt::resource_handle< Resource > +, entt::resource_handle< Resource >
  • operator++() -: entt::meta_associative_container::meta_iterator -, entt::meta_sequence_container::meta_iterator +: entt::meta_associative_container::meta_iterator +, entt::meta_sequence_container::meta_iterator
  • operator->() -: entt::basic_poly< Concept, Len, Align > +: entt::basic_poly< Concept, Len, Align > , entt::meta_handle -, entt::resource_handle< Resource > +, entt::resource_handle< Resource >
  • operator=() -: entt::basic_any< Len, Align > +: entt::basic_any< Len, Align > , entt::basic_continuous_loader< Entity > , entt::basic_observer< Entity > , entt::basic_poly< Concept, Len, Align > , entt::basic_registry< Entity > , entt::basic_snapshot< Entity > , entt::basic_snapshot_loader< Entity > -, entt::basic_sparse_set< Entity > +, entt::basic_sparse_set< Entity, Allocator > +, entt::basic_storage_impl< Entity, Type, Allocator, typename > , entt::dispatcher , entt::emitter< Derived > -, entt::meta_any -, entt::meta_handle -, entt::monostate< id_type > +, entt::meta_any +, entt::meta_handle +, entt::monostate< id_type > , entt::resource_cache< Resource > +, entt::resource_handle< Resource > , entt::scheduler< Delta > , entt::scoped_connection -, entt::type_info +, entt::type_info
  • operator==() -: entt::basic_any< Len, Align > -, entt::basic_handle< Entity, Type > -, entt::basic_hashed_string< Char > -, entt::delegate< Ret(Args...)> +: entt::basic_any< Len, Align > +, entt::basic_handle< Entity, Type > +, entt::basic_hashed_string< Char > +, entt::delegate< Ret(Args...)> , entt::meta_any -, entt::meta_associative_container::meta_iterator -, entt::meta_sequence_container::meta_iterator -, entt::meta_type -, entt::null_t -, entt::type_info +, entt::meta_associative_container::meta_iterator +, entt::meta_sequence_container::meta_iterator +, entt::meta_type +, entt::null_t +, entt::tombstone_t +, entt::type_info
  • operator[]() : entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > > , entt::basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... > -, entt::basic_sparse_set< Entity > -, entt::basic_view< Entity, exclude_t<>, Component > +, entt::basic_sparse_set< Entity, Allocator > +, entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > , entt::meta_sequence_container
  • +
  • operator|() +: entt::null_t +, entt::tombstone_t +
  • orphan() : entt::basic_handle< Entity, Type > , entt::basic_registry< Entity > @@ -223,11 +232,14 @@ $(function() { , entt::basic_registry< Entity > , entt::basic_snapshot_loader< Entity >
  • +
  • owner() +: entt::basic_any< Len, Align > +
  • diff --git a/functions_func_p.html b/functions_func_p.html index 363b584fa..ec5d0d31d 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,23 +66,26 @@ $(function() {

    - p -

    diff --git a/functions_func_t.html b/functions_func_t.html index e5dded501..1fe5c1c82 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,48 +69,57 @@ $(function() { : entt::resource_cache< Resource >
  • template_arg() -: entt::meta_type +: entt::meta_type
  • template_arity() -: entt::meta_type +: entt::meta_type
  • template_type() -: entt::meta_type +: entt::meta_type
  • tick() : entt::process< Derived, Delta >
  • +
  • to_entity() +: entt::entt_traits< Type > +
  • +
  • to_integral() +: entt::entt_traits< Type > +
  • +
  • to_version() +: entt::entt_traits< Type > +
  • top_level() -: entt::basic_organizer< Entity >::vertex +: entt::basic_organizer< Entity >::vertex
  • trigger() -: entt::dispatcher +: entt::dispatcher
  • try_cast() : entt::meta_any
  • try_ctx() -: entt::basic_registry< Entity > +: entt::basic_registry< Entity >
  • try_get() : entt::basic_handle< Entity, Type > -, entt::basic_registry< Entity > +, entt::basic_registry< Entity >
  • type() -: entt::basic_any< Len, Align > -, entt::basic_poly< Concept, Len, Align > -, entt::meta_any -, entt::meta_data +: entt::basic_any< Len, Align > +, entt::basic_poly< Concept, Len, Align > +, entt::meta_any +, entt::meta_data , entt::meta_factory< Type >
  • type_info() -: entt::type_info +: entt::type_info
  • diff --git a/functions_func_u.html b/functions_func_u.html index c31f9b159..76cc43223 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,26 +66,26 @@ $(function() {

    - u -

    diff --git a/functions_func_v.html b/functions_func_v.html index 826ebe052..f566fe625 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -70,25 +70,25 @@ $(function() { , entt::basic_registry< Entity >
  • value() -: entt::basic_hashed_string< Char > +: entt::basic_hashed_string< Char > , entt::meta_prop -, entt::type_hash< Type, typename > -, entt::type_name< Type, typename > -, entt::type_seq< Type, typename > +, entt::type_hash< Type, typename > +, entt::type_name< Type, typename > +, entt::type_seq< Type, typename >
  • value_type() -: entt::meta_associative_container -, entt::meta_sequence_container -, entt::Storage< Entity >::type< Base > +: entt::meta_associative_container +, entt::meta_sequence_container +, entt::Storage< Entity >::type< Base >
  • version() -: entt::basic_registry< Entity > +: entt::basic_registry< Entity >
  • vertex() : entt::basic_organizer< Entity >::vertex
  • view() -: entt::basic_registry< Entity > +: entt::basic_registry< Entity >
  • visit() : entt::basic_handle< Entity, Type > @@ -98,7 +98,7 @@ $(function() { diff --git a/functions_func_w.html b/functions_func_w.html index 2abebb167..848b27858 100644 --- a/functions_func_w.html +++ b/functions_func_w.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,13 +66,13 @@ $(function() {

    - w -

    diff --git a/functions_func_y.html b/functions_func_y.html index 05c14bf39..c941280df 100644 --- a/functions_func_y.html +++ b/functions_func_y.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_~.html b/functions_func_~.html index 30113d77d..fe84a8509 100644 --- a/functions_func_~.html +++ b/functions_func_~.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Functions @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -72,7 +72,10 @@ $(function() { : entt::basic_observer< Entity >
  • ~basic_sparse_set() -: entt::basic_sparse_set< Entity > +: entt::basic_sparse_set< Entity, Allocator > +
  • +
  • ~basic_storage_impl() +: entt::basic_storage_impl< Entity, Type, Allocator, typename >
  • ~emitter() : entt::emitter< Derived > @@ -93,7 +96,7 @@ $(function() { diff --git a/functions_g.html b/functions_g.html index 01fb37b24..3df74d9f4 100644 --- a/functions_g.html +++ b/functions_g.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -71,15 +71,15 @@ $(function() { , entt::basic_handle< Entity, Type > , entt::basic_registry< Entity > , entt::basic_sequence_container< Container > -, entt::basic_storage< Entity, Type, typename > -, entt::basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > > -, entt::basic_view< Entity, exclude_t< Exclude... >, Component... > -, entt::basic_view< Entity, exclude_t<>, Component > +, entt::basic_storage_impl< Entity, Type, Allocator, typename > +, entt::basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > > +, entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component > +, entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... > , entt::meta_any , entt::meta_data , entt::meta_type -, entt::resource_handle< Resource > -, entt::service_locator< Service > +, entt::resource_handle< Resource > +, entt::service_locator< Service >
  • get_or_emplace() : entt::basic_handle< Entity, Type > @@ -89,18 +89,18 @@ $(function() { : entt::basic_organizer< Entity >
  • group() -: entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > -, entt::basic_collector<> +: entt::basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... > +, entt::basic_collector<> , entt::basic_registry< Entity >
  • group_if_exists() -: entt::basic_registry< Entity > +: entt::basic_registry< Entity >
  • diff --git a/functions_h.html b/functions_h.html index 653885727..fad92ef0f 100644 --- a/functions_h.html +++ b/functions_h.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,7 +69,7 @@ $(function() { : entt::resource_cache< Resource >
  • hash() -: entt::type_info +: entt::type_info
  • hash_type : entt::basic_hashed_string< Char > @@ -78,7 +78,7 @@ $(function() { diff --git a/functions_i.html b/functions_i.html index ac02e9879..6dca6e9d7 100644 --- a/functions_i.html +++ b/functions_i.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,28 +66,38 @@ $(function() {

    - i -

    diff --git a/functions_l.html b/functions_l.html index 2276e55fe..cf8557700 100644 --- a/functions_l.html +++ b/functions_l.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -65,6 +65,9 @@ $(function() {
    Here is a list of all documented class members with links to the class documentation for each member:

    - l -

    diff --git a/functions_t.html b/functions_t.html index 5dfab57ac..86d1513a1 100644 --- a/functions_t.html +++ b/functions_t.html @@ -3,7 +3,7 @@ - + EnTT: Class Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -69,45 +69,54 @@ $(function() { : entt::resource_cache< Resource >
  • template_arg() -: entt::meta_type +: entt::meta_type
  • template_arity() -: entt::meta_type +: entt::meta_type
  • template_type() -: entt::meta_type +: entt::meta_type
  • tick() : entt::process< Derived, Delta >
  • +
  • to_entity() +: entt::entt_traits< Type > +
  • +
  • to_integral() +: entt::entt_traits< Type > +
  • +
  • to_version() +: entt::entt_traits< Type > +
  • top_level() -: entt::basic_organizer< Entity >::vertex +: entt::basic_organizer< Entity >::vertex
  • trigger() -: entt::dispatcher +: entt::dispatcher
  • try_cast() : entt::meta_any
  • try_ctx() -: entt::basic_registry< Entity > +: entt::basic_registry< Entity >
  • try_get() : entt::basic_handle< Entity, Type > , entt::basic_registry< Entity >
  • type() -: entt::basic_any< Len, Align > -, entt::basic_poly< Concept, Len, Align > +: entt::basic_any< Len, Align > +, entt::basic_poly< Concept, Len, Align > , entt::constness_as< To, From > , entt::constness_as< To, const From > , entt::delegate< Ret(Args...)> , entt::family<... > , entt::identifier< Types > , entt::member_class< Member > -, entt::meta_any +, entt::meta_any , entt::meta_container_traits< Container, Trait > -, entt::meta_data +, entt::meta_data , entt::meta_factory< Type > , entt::meta_function_helper< Type, Candidate > , entt::poly_vtable< Concept, Len, Align > @@ -126,16 +135,16 @@ $(function() { , entt::value_list_cat<>
  • type_id -: entt::type_info +: entt::type_info
  • type_info() -: entt::type_info +: entt::type_info
  • diff --git a/functions_type.html b/functions_type.html index 17a79e947..6a85ff2ae 100644 --- a/functions_type.html +++ b/functions_type.html @@ -3,7 +3,7 @@ - + EnTT: Class Members - Typedefs @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -65,6 +65,11 @@ $(function() {  

    - a -

    Note that benchmarks are not part of this set.

    -

    +

    License

    Code and documentation Copyright (c) 2017-2021 Michele Caini.
    Colorful logo Copyright (c) 2018-2021 Richard Caseres.

    @@ -243,13 +247,9 @@ License All logos released under CC BY-SA 4.0.

    -
    entt::registry
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:76
    -
    entt::view
    basic_view< entity, Args... > view
    Alias declaration for the most common use case.
    Definition: fwd.hpp:128
    -
    entt::basic_registry
    Fast and reliable entity-component system.
    Definition: registry.hpp:44
    -
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:60
    diff --git a/inherit_graph_100.map b/inherit_graph_100.map index ec744124b..7662c5f0c 100644 --- a/inherit_graph_100.map +++ b/inherit_graph_100.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_100.md5 b/inherit_graph_100.md5 index e0b086cc5..4500eb5f8 100644 --- a/inherit_graph_100.md5 +++ b/inherit_graph_100.md5 @@ -1 +1 @@ -f251b3f709711c6e02a842a4221314ec \ No newline at end of file +4b46d37c5327274ce9a2386e65836a2e \ No newline at end of file diff --git a/inherit_graph_100.png b/inherit_graph_100.png index 4edb4caeb..ddffdc600 100644 Binary files a/inherit_graph_100.png and b/inherit_graph_100.png differ diff --git a/inherit_graph_101.map b/inherit_graph_101.map index d22985c8e..0e5ea910c 100644 --- a/inherit_graph_101.map +++ b/inherit_graph_101.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_101.md5 b/inherit_graph_101.md5 index 10a68e4f5..7d4152f96 100644 --- a/inherit_graph_101.md5 +++ b/inherit_graph_101.md5 @@ -1 +1 @@ -a5601345bc12e01efc4bc81ed99fe3b3 \ No newline at end of file +cb945a2a41a0c89598d221ca3c4a61c0 \ No newline at end of file diff --git a/inherit_graph_101.png b/inherit_graph_101.png index 7b486497b..fd7b7201d 100644 Binary files a/inherit_graph_101.png and b/inherit_graph_101.png differ diff --git a/inherit_graph_102.map b/inherit_graph_102.map index 96e64119e..20b356d07 100644 --- a/inherit_graph_102.map +++ b/inherit_graph_102.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_102.md5 b/inherit_graph_102.md5 index b826ee2bf..d9af054e3 100644 --- a/inherit_graph_102.md5 +++ b/inherit_graph_102.md5 @@ -1 +1 @@ -4a10849d32b79e5ae12992f7ad2d78b6 \ No newline at end of file +0cbfede483556f2a22161ebbce1619d4 \ No newline at end of file diff --git a/inherit_graph_102.png b/inherit_graph_102.png index fc908c670..833c615cf 100644 Binary files a/inherit_graph_102.png and b/inherit_graph_102.png differ diff --git a/inherit_graph_103.map b/inherit_graph_103.map index e506216e5..15c3a2763 100644 --- a/inherit_graph_103.map +++ b/inherit_graph_103.map @@ -1,3 +1,6 @@ - + + + + diff --git a/inherit_graph_103.md5 b/inherit_graph_103.md5 index 983a2dc51..1ed69564c 100644 --- a/inherit_graph_103.md5 +++ b/inherit_graph_103.md5 @@ -1 +1 @@ -b3494108ed2ffb867569a6feb069d727 \ No newline at end of file +8a09184404448a98ffe1c9b82a039ef4 \ No newline at end of file diff --git a/inherit_graph_103.png b/inherit_graph_103.png index fe9ccba54..fef76b63e 100644 Binary files a/inherit_graph_103.png and b/inherit_graph_103.png differ diff --git a/inherit_graph_104.map b/inherit_graph_104.map index c2aa9aa54..2ef471e44 100644 --- a/inherit_graph_104.map +++ b/inherit_graph_104.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_104.md5 b/inherit_graph_104.md5 index 18e19d534..4c1ad9b84 100644 --- a/inherit_graph_104.md5 +++ b/inherit_graph_104.md5 @@ -1 +1 @@ -ea17980bf052b7ab3ab5c3e337202551 \ No newline at end of file +723c780dd5990ddc8f9f13792dd78635 \ No newline at end of file diff --git a/inherit_graph_104.png b/inherit_graph_104.png index d167371d9..9b9635f5d 100644 Binary files a/inherit_graph_104.png and b/inherit_graph_104.png differ diff --git a/inherit_graph_105.map b/inherit_graph_105.map index a04dfbcb3..41a81b742 100644 --- a/inherit_graph_105.map +++ b/inherit_graph_105.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_105.md5 b/inherit_graph_105.md5 index b5c6e6a7a..80d0c73cd 100644 --- a/inherit_graph_105.md5 +++ b/inherit_graph_105.md5 @@ -1 +1 @@ -31570aaf79c5edb0cdbdf6cc367c32ab \ No newline at end of file +9555cdd7bb13a8bd8c37c17fbd6fe9b1 \ No newline at end of file diff --git a/inherit_graph_105.png b/inherit_graph_105.png index 4d86c3461..e6b728b0c 100644 Binary files a/inherit_graph_105.png and b/inherit_graph_105.png differ diff --git a/inherit_graph_106.map b/inherit_graph_106.map index 325d068de..f6e6dd424 100644 --- a/inherit_graph_106.map +++ b/inherit_graph_106.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_106.md5 b/inherit_graph_106.md5 index 99d149fd8..4bcd15e45 100644 --- a/inherit_graph_106.md5 +++ b/inherit_graph_106.md5 @@ -1 +1 @@ -d44ecc48d6fd7aaab5d40af7f7344e55 \ No newline at end of file +23ea7b136d4c9cb4027ae69345bc7cb7 \ No newline at end of file diff --git a/inherit_graph_106.png b/inherit_graph_106.png index 42e492930..2799fa841 100644 Binary files a/inherit_graph_106.png and b/inherit_graph_106.png differ diff --git a/inherit_graph_107.map b/inherit_graph_107.map index 3e5d873b5..ea77e3089 100644 --- a/inherit_graph_107.map +++ b/inherit_graph_107.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_107.md5 b/inherit_graph_107.md5 index c2626bae3..cfc2a4eab 100644 --- a/inherit_graph_107.md5 +++ b/inherit_graph_107.md5 @@ -1 +1 @@ -da67fa5ee8728dd561b731c9fb433ee4 \ No newline at end of file +03ebd12327ce6965e8e76c33c386b46e \ No newline at end of file diff --git a/inherit_graph_107.png b/inherit_graph_107.png index fa24bbabb..f84e37a83 100644 Binary files a/inherit_graph_107.png and b/inherit_graph_107.png differ diff --git a/inherit_graph_108.map b/inherit_graph_108.map index 86c8eae38..ab41230e1 100644 --- a/inherit_graph_108.map +++ b/inherit_graph_108.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_108.md5 b/inherit_graph_108.md5 index 41676cec5..ced925495 100644 --- a/inherit_graph_108.md5 +++ b/inherit_graph_108.md5 @@ -1 +1 @@ -bdac9e0d892e193e3d0c066af3dbd590 \ No newline at end of file +3d719b773c24614996144e0afc1b0066 \ No newline at end of file diff --git a/inherit_graph_108.png b/inherit_graph_108.png index 01c9ee5a7..c966403a5 100644 Binary files a/inherit_graph_108.png and b/inherit_graph_108.png differ diff --git a/inherit_graph_109.map b/inherit_graph_109.map index 7662c5f0c..8729d97e5 100644 --- a/inherit_graph_109.map +++ b/inherit_graph_109.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_109.md5 b/inherit_graph_109.md5 index 4500eb5f8..ffa209eea 100644 --- a/inherit_graph_109.md5 +++ b/inherit_graph_109.md5 @@ -1 +1 @@ -4b46d37c5327274ce9a2386e65836a2e \ No newline at end of file +c209e7ba4f851d1b8fd34a8ee9b6ef62 \ No newline at end of file diff --git a/inherit_graph_109.png b/inherit_graph_109.png index ddffdc600..2b5f572c2 100644 Binary files a/inherit_graph_109.png and b/inherit_graph_109.png differ diff --git a/inherit_graph_110.map b/inherit_graph_110.map index 0e5ea910c..b9afc9469 100644 --- a/inherit_graph_110.map +++ b/inherit_graph_110.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_110.md5 b/inherit_graph_110.md5 index 7d4152f96..d7bba944e 100644 --- a/inherit_graph_110.md5 +++ b/inherit_graph_110.md5 @@ -1 +1 @@ -cb945a2a41a0c89598d221ca3c4a61c0 \ No newline at end of file +a4790bc0bef0ac33539cb28531648039 \ No newline at end of file diff --git a/inherit_graph_110.png b/inherit_graph_110.png index fd7b7201d..d4a2c6477 100644 Binary files a/inherit_graph_110.png and b/inherit_graph_110.png differ diff --git a/inherit_graph_111.map b/inherit_graph_111.map index 20b356d07..772634084 100644 --- a/inherit_graph_111.map +++ b/inherit_graph_111.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_111.md5 b/inherit_graph_111.md5 index d9af054e3..86fbc06f0 100644 --- a/inherit_graph_111.md5 +++ b/inherit_graph_111.md5 @@ -1 +1 @@ -0cbfede483556f2a22161ebbce1619d4 \ No newline at end of file +c2f4a5ee491a302b3fcaa7747d872595 \ No newline at end of file diff --git a/inherit_graph_111.png b/inherit_graph_111.png index 833c615cf..dd09699f5 100644 Binary files a/inherit_graph_111.png and b/inherit_graph_111.png differ diff --git a/inherit_graph_112.map b/inherit_graph_112.map index 585cba542..f7887702b 100644 --- a/inherit_graph_112.map +++ b/inherit_graph_112.map @@ -1,6 +1,3 @@ - - - - + diff --git a/inherit_graph_112.md5 b/inherit_graph_112.md5 index 253ee89dd..5b5507bd6 100644 --- a/inherit_graph_112.md5 +++ b/inherit_graph_112.md5 @@ -1 +1 @@ -ca24b764d641f8f52ac3cf12c53f8104 \ No newline at end of file +16e4a86376f3d5e26d74f2d1089594d0 \ No newline at end of file diff --git a/inherit_graph_112.png b/inherit_graph_112.png index 3dacbe28a..2c8f849fb 100644 Binary files a/inherit_graph_112.png and b/inherit_graph_112.png differ diff --git a/inherit_graph_113.map b/inherit_graph_113.map index 2ef471e44..7a4f51538 100644 --- a/inherit_graph_113.map +++ b/inherit_graph_113.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_113.md5 b/inherit_graph_113.md5 index 4c1ad9b84..c0963501b 100644 --- a/inherit_graph_113.md5 +++ b/inherit_graph_113.md5 @@ -1 +1 @@ -723c780dd5990ddc8f9f13792dd78635 \ No newline at end of file +78d4ee258bef28a7d3180adfeda52259 \ No newline at end of file diff --git a/inherit_graph_113.png b/inherit_graph_113.png index 9b9635f5d..7f266a047 100644 Binary files a/inherit_graph_113.png and b/inherit_graph_113.png differ diff --git a/inherit_graph_114.map b/inherit_graph_114.map index 41a81b742..254448e55 100644 --- a/inherit_graph_114.map +++ b/inherit_graph_114.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_114.md5 b/inherit_graph_114.md5 index 80d0c73cd..f8f23df78 100644 --- a/inherit_graph_114.md5 +++ b/inherit_graph_114.md5 @@ -1 +1 @@ -9555cdd7bb13a8bd8c37c17fbd6fe9b1 \ No newline at end of file +6f98549b7b49f03b804ea0c1a15b13cc \ No newline at end of file diff --git a/inherit_graph_114.png b/inherit_graph_114.png index e6b728b0c..b6ec12040 100644 Binary files a/inherit_graph_114.png and b/inherit_graph_114.png differ diff --git a/inherit_graph_115.map b/inherit_graph_115.map index 5ce481ecd..1e6f023c8 100644 --- a/inherit_graph_115.map +++ b/inherit_graph_115.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_115.md5 b/inherit_graph_115.md5 index adc63d155..b3c591897 100644 --- a/inherit_graph_115.md5 +++ b/inherit_graph_115.md5 @@ -1 +1 @@ -8cf2dc83094eced82bc665ec87041277 \ No newline at end of file +178a0b7f040580ee2041b645181ba802 \ No newline at end of file diff --git a/inherit_graph_115.png b/inherit_graph_115.png index 2799fa841..fcffb4639 100644 Binary files a/inherit_graph_115.png and b/inherit_graph_115.png differ diff --git a/inherit_graph_116.map b/inherit_graph_116.map index ea77e3089..bf41db5ee 100644 --- a/inherit_graph_116.map +++ b/inherit_graph_116.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_116.md5 b/inherit_graph_116.md5 index cfc2a4eab..a2af63b62 100644 --- a/inherit_graph_116.md5 +++ b/inherit_graph_116.md5 @@ -1 +1 @@ -03ebd12327ce6965e8e76c33c386b46e \ No newline at end of file +fc8123332184e03eda36778698335175 \ No newline at end of file diff --git a/inherit_graph_116.png b/inherit_graph_116.png index f84e37a83..1158c0bd9 100644 Binary files a/inherit_graph_116.png and b/inherit_graph_116.png differ diff --git a/inherit_graph_117.map b/inherit_graph_117.map index ab41230e1..c337a1b3b 100644 --- a/inherit_graph_117.map +++ b/inherit_graph_117.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_117.md5 b/inherit_graph_117.md5 index ced925495..663b261ac 100644 --- a/inherit_graph_117.md5 +++ b/inherit_graph_117.md5 @@ -1 +1 @@ -3d719b773c24614996144e0afc1b0066 \ No newline at end of file +20012184e1a29a5286b21c1fe234ad38 \ No newline at end of file diff --git a/inherit_graph_117.png b/inherit_graph_117.png index c966403a5..f606c326b 100644 Binary files a/inherit_graph_117.png and b/inherit_graph_117.png differ diff --git a/inherit_graph_118.map b/inherit_graph_118.map index 8729d97e5..4a8b2d15a 100644 --- a/inherit_graph_118.map +++ b/inherit_graph_118.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_118.md5 b/inherit_graph_118.md5 index ffa209eea..28a4b535c 100644 --- a/inherit_graph_118.md5 +++ b/inherit_graph_118.md5 @@ -1 +1 @@ -c209e7ba4f851d1b8fd34a8ee9b6ef62 \ No newline at end of file +f21f5325dfc107fc26512db92251bfde \ No newline at end of file diff --git a/inherit_graph_118.png b/inherit_graph_118.png index 2b5f572c2..9d38aa4f5 100644 Binary files a/inherit_graph_118.png and b/inherit_graph_118.png differ diff --git a/inherit_graph_119.map b/inherit_graph_119.map index b9afc9469..c7932295c 100644 --- a/inherit_graph_119.map +++ b/inherit_graph_119.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_119.md5 b/inherit_graph_119.md5 index d7bba944e..7f97f427c 100644 --- a/inherit_graph_119.md5 +++ b/inherit_graph_119.md5 @@ -1 +1 @@ -a4790bc0bef0ac33539cb28531648039 \ No newline at end of file +51699c9c58e7ce353e8fd19fcf08ee60 \ No newline at end of file diff --git a/inherit_graph_119.png b/inherit_graph_119.png index d4a2c6477..0ef2c011b 100644 Binary files a/inherit_graph_119.png and b/inherit_graph_119.png differ diff --git a/inherit_graph_120.map b/inherit_graph_120.map index 772634084..94871c0aa 100644 --- a/inherit_graph_120.map +++ b/inherit_graph_120.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_120.md5 b/inherit_graph_120.md5 index 86fbc06f0..66a4bad20 100644 --- a/inherit_graph_120.md5 +++ b/inherit_graph_120.md5 @@ -1 +1 @@ -c2f4a5ee491a302b3fcaa7747d872595 \ No newline at end of file +c040e930da0640acfc225e0071fbffd6 \ No newline at end of file diff --git a/inherit_graph_120.png b/inherit_graph_120.png index dd09699f5..99be9adb8 100644 Binary files a/inherit_graph_120.png and b/inherit_graph_120.png differ diff --git a/inherit_graph_121.map b/inherit_graph_121.map index f7887702b..5211b86e5 100644 --- a/inherit_graph_121.map +++ b/inherit_graph_121.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_121.md5 b/inherit_graph_121.md5 index 5b5507bd6..a38e4ad4e 100644 --- a/inherit_graph_121.md5 +++ b/inherit_graph_121.md5 @@ -1 +1 @@ -16e4a86376f3d5e26d74f2d1089594d0 \ No newline at end of file +51840c0323165c0a150ea6f094eaf6c2 \ No newline at end of file diff --git a/inherit_graph_121.png b/inherit_graph_121.png index 2c8f849fb..9a001366d 100644 Binary files a/inherit_graph_121.png and b/inherit_graph_121.png differ diff --git a/inherit_graph_122.map b/inherit_graph_122.map index 7a4f51538..5304cb791 100644 --- a/inherit_graph_122.map +++ b/inherit_graph_122.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_122.md5 b/inherit_graph_122.md5 index c0963501b..2babb9f30 100644 --- a/inherit_graph_122.md5 +++ b/inherit_graph_122.md5 @@ -1 +1 @@ -78d4ee258bef28a7d3180adfeda52259 \ No newline at end of file +75a734ea4cff33e468be7b6052e8c6cd \ No newline at end of file diff --git a/inherit_graph_122.png b/inherit_graph_122.png index 7f266a047..bf3138f1e 100644 Binary files a/inherit_graph_122.png and b/inherit_graph_122.png differ diff --git a/inherit_graph_123.map b/inherit_graph_123.map index 254448e55..3e332a38d 100644 --- a/inherit_graph_123.map +++ b/inherit_graph_123.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_123.md5 b/inherit_graph_123.md5 index f8f23df78..74ece9376 100644 --- a/inherit_graph_123.md5 +++ b/inherit_graph_123.md5 @@ -1 +1 @@ -6f98549b7b49f03b804ea0c1a15b13cc \ No newline at end of file +23142d3e777d0835e95eee731d9dd49e \ No newline at end of file diff --git a/inherit_graph_123.png b/inherit_graph_123.png index b6ec12040..122f79bca 100644 Binary files a/inherit_graph_123.png and b/inherit_graph_123.png differ diff --git a/inherit_graph_124.map b/inherit_graph_124.map index 1e6f023c8..f49d7e1f1 100644 --- a/inherit_graph_124.map +++ b/inherit_graph_124.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_124.md5 b/inherit_graph_124.md5 index 4ead4ab26..ab5c1f381 100644 --- a/inherit_graph_124.md5 +++ b/inherit_graph_124.md5 @@ -1 +1 @@ -1f43ae43d85f846abea9ac245f419bd3 \ No newline at end of file +252ff7166a278d2d650acb6112729e72 \ No newline at end of file diff --git a/inherit_graph_124.png b/inherit_graph_124.png index fcffb4639..8447c7042 100644 Binary files a/inherit_graph_124.png and b/inherit_graph_124.png differ diff --git a/inherit_graph_125.map b/inherit_graph_125.map index bf41db5ee..539424c2f 100644 --- a/inherit_graph_125.map +++ b/inherit_graph_125.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_125.md5 b/inherit_graph_125.md5 index a2af63b62..2da21b27e 100644 --- a/inherit_graph_125.md5 +++ b/inherit_graph_125.md5 @@ -1 +1 @@ -fc8123332184e03eda36778698335175 \ No newline at end of file +da30c9e3bb65e7222471ea30d6d2864e \ No newline at end of file diff --git a/inherit_graph_125.png b/inherit_graph_125.png index 1158c0bd9..175a618df 100644 Binary files a/inherit_graph_125.png and b/inherit_graph_125.png differ diff --git a/inherit_graph_126.map b/inherit_graph_126.map index c337a1b3b..9e034b10e 100644 --- a/inherit_graph_126.map +++ b/inherit_graph_126.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_126.md5 b/inherit_graph_126.md5 index 663b261ac..4fcd34421 100644 --- a/inherit_graph_126.md5 +++ b/inherit_graph_126.md5 @@ -1 +1 @@ -20012184e1a29a5286b21c1fe234ad38 \ No newline at end of file +329ad928fb729c5506fa3fe0bef65eb3 \ No newline at end of file diff --git a/inherit_graph_126.png b/inherit_graph_126.png index f606c326b..e1c1cd28b 100644 Binary files a/inherit_graph_126.png and b/inherit_graph_126.png differ diff --git a/inherit_graph_127.map b/inherit_graph_127.map index a358237aa..91fe99903 100644 --- a/inherit_graph_127.map +++ b/inherit_graph_127.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_127.md5 b/inherit_graph_127.md5 index a13559125..9013ee31b 100644 --- a/inherit_graph_127.md5 +++ b/inherit_graph_127.md5 @@ -1 +1 @@ -70a00882f5463a29681ba74f143c4692 \ No newline at end of file +a7de9f7c45a9e15a4849b281eb13a42f \ No newline at end of file diff --git a/inherit_graph_127.png b/inherit_graph_127.png index e7ce926fb..71594ac17 100644 Binary files a/inherit_graph_127.png and b/inherit_graph_127.png differ diff --git a/inherit_graph_128.map b/inherit_graph_128.map index 94871c0aa..7e261f453 100644 --- a/inherit_graph_128.map +++ b/inherit_graph_128.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_128.md5 b/inherit_graph_128.md5 index 66a4bad20..baa3d0e0d 100644 --- a/inherit_graph_128.md5 +++ b/inherit_graph_128.md5 @@ -1 +1 @@ -c040e930da0640acfc225e0071fbffd6 \ No newline at end of file +492cf1f4dc03649e85459fa42851c26f \ No newline at end of file diff --git a/inherit_graph_128.png b/inherit_graph_128.png index 99be9adb8..79e2513c4 100644 Binary files a/inherit_graph_128.png and b/inherit_graph_128.png differ diff --git a/inherit_graph_129.map b/inherit_graph_129.map index 5211b86e5..3f16dedf7 100644 --- a/inherit_graph_129.map +++ b/inherit_graph_129.map @@ -1,4 +1,4 @@ - - + + diff --git a/inherit_graph_129.md5 b/inherit_graph_129.md5 index 4188702fa..02d86cf98 100644 --- a/inherit_graph_129.md5 +++ b/inherit_graph_129.md5 @@ -1 +1 @@ -250505dc69eb2dc20752d86b77411d22 \ No newline at end of file +0e4739cb5bffcfb153a604fb431b9685 \ No newline at end of file diff --git a/inherit_graph_129.png b/inherit_graph_129.png index 9a001366d..06349645c 100644 Binary files a/inherit_graph_129.png and b/inherit_graph_129.png differ diff --git a/inherit_graph_13.map b/inherit_graph_13.map index 6b05e324d..26425476b 100644 --- a/inherit_graph_13.map +++ b/inherit_graph_13.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 index 54a32b331..47d538c72 100644 --- a/inherit_graph_13.md5 +++ b/inherit_graph_13.md5 @@ -1 +1 @@ -dd50b51cae17f2f6671c403e542385e0 \ No newline at end of file +79860f4e174e143ad5b258f7974b4eb4 \ No newline at end of file diff --git a/inherit_graph_13.png b/inherit_graph_13.png index a4229fa82..4f23b5d7a 100644 Binary files a/inherit_graph_13.png and b/inherit_graph_13.png differ diff --git a/inherit_graph_130.map b/inherit_graph_130.map index 00ac21ad5..bb8a792d7 100644 --- a/inherit_graph_130.map +++ b/inherit_graph_130.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_130.md5 b/inherit_graph_130.md5 index 27ec021f7..0a9edcce4 100644 --- a/inherit_graph_130.md5 +++ b/inherit_graph_130.md5 @@ -1 +1 @@ -4ab4a4ea5f09d49b78006f93328b14f6 \ No newline at end of file +dfc533d50ed6fb7966232d163ee704cf \ No newline at end of file diff --git a/inherit_graph_130.png b/inherit_graph_130.png index bf3138f1e..c5d37cf35 100644 Binary files a/inherit_graph_130.png and b/inherit_graph_130.png differ diff --git a/inherit_graph_131.map b/inherit_graph_131.map index f49d7e1f1..26a17376d 100644 --- a/inherit_graph_131.map +++ b/inherit_graph_131.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_131.md5 b/inherit_graph_131.md5 index ab5c1f381..cf75ff325 100644 --- a/inherit_graph_131.md5 +++ b/inherit_graph_131.md5 @@ -1 +1 @@ -252ff7166a278d2d650acb6112729e72 \ No newline at end of file +9c2e416d7878932b0a87489324431ab5 \ No newline at end of file diff --git a/inherit_graph_131.png b/inherit_graph_131.png index 8447c7042..fb3ff6761 100644 Binary files a/inherit_graph_131.png and b/inherit_graph_131.png differ diff --git a/inherit_graph_132.map b/inherit_graph_132.map index 539424c2f..cd12f6c5c 100644 --- a/inherit_graph_132.map +++ b/inherit_graph_132.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_132.md5 b/inherit_graph_132.md5 index 2da21b27e..147341b07 100644 --- a/inherit_graph_132.md5 +++ b/inherit_graph_132.md5 @@ -1 +1 @@ -da30c9e3bb65e7222471ea30d6d2864e \ No newline at end of file +fed123d41bb565808b0d7286c7db6b6b \ No newline at end of file diff --git a/inherit_graph_132.png b/inherit_graph_132.png index 175a618df..b49c2809b 100644 Binary files a/inherit_graph_132.png and b/inherit_graph_132.png differ diff --git a/inherit_graph_133.map b/inherit_graph_133.map index 9e034b10e..94c6fcfee 100644 --- a/inherit_graph_133.map +++ b/inherit_graph_133.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_133.md5 b/inherit_graph_133.md5 index 4fcd34421..76603d1de 100644 --- a/inherit_graph_133.md5 +++ b/inherit_graph_133.md5 @@ -1 +1 @@ -329ad928fb729c5506fa3fe0bef65eb3 \ No newline at end of file +b93e72808f9061dd00a7b4f79431eab9 \ No newline at end of file diff --git a/inherit_graph_133.png b/inherit_graph_133.png index e1c1cd28b..d3db68f86 100644 Binary files a/inherit_graph_133.png and b/inherit_graph_133.png differ diff --git a/inherit_graph_134.map b/inherit_graph_134.map index 91fe99903..6df3df22c 100644 --- a/inherit_graph_134.map +++ b/inherit_graph_134.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_134.md5 b/inherit_graph_134.md5 index 9013ee31b..83acc360f 100644 --- a/inherit_graph_134.md5 +++ b/inherit_graph_134.md5 @@ -1 +1 @@ -a7de9f7c45a9e15a4849b281eb13a42f \ No newline at end of file +85711c2ea4d73f45b039cce8be403e5d \ No newline at end of file diff --git a/inherit_graph_134.png b/inherit_graph_134.png index 71594ac17..7f80f01f6 100644 Binary files a/inherit_graph_134.png and b/inherit_graph_134.png differ diff --git a/inherit_graph_135.map b/inherit_graph_135.map index 7e261f453..556fbdb23 100644 --- a/inherit_graph_135.map +++ b/inherit_graph_135.map @@ -1,5 +1,4 @@ - - - + + diff --git a/inherit_graph_135.md5 b/inherit_graph_135.md5 index baa3d0e0d..bdc7a766f 100644 --- a/inherit_graph_135.md5 +++ b/inherit_graph_135.md5 @@ -1 +1 @@ -492cf1f4dc03649e85459fa42851c26f \ No newline at end of file +93ddef3da9875d4842a7c5e913719a09 \ No newline at end of file diff --git a/inherit_graph_135.png b/inherit_graph_135.png index 79e2513c4..fc1099700 100644 Binary files a/inherit_graph_135.png and b/inherit_graph_135.png differ diff --git a/inherit_graph_136.map b/inherit_graph_136.map index 46a277dc6..b4d1596ba 100644 --- a/inherit_graph_136.map +++ b/inherit_graph_136.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_136.md5 b/inherit_graph_136.md5 index 056c8524b..af43cb999 100644 --- a/inherit_graph_136.md5 +++ b/inherit_graph_136.md5 @@ -1 +1 @@ -64e2b86945e4e2073983d86bd568e2eb \ No newline at end of file +eebfe65f7367917e47b5ccf355e3f48c \ No newline at end of file diff --git a/inherit_graph_136.png b/inherit_graph_136.png index 39730ea62..1b8365048 100644 Binary files a/inherit_graph_136.png and b/inherit_graph_136.png differ diff --git a/inherit_graph_137.map b/inherit_graph_137.map index bb8a792d7..0d1797ada 100644 --- a/inherit_graph_137.map +++ b/inherit_graph_137.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_137.md5 b/inherit_graph_137.md5 index 0a9edcce4..e121a31b1 100644 --- a/inherit_graph_137.md5 +++ b/inherit_graph_137.md5 @@ -1 +1 @@ -dfc533d50ed6fb7966232d163ee704cf \ No newline at end of file +a3e3cec815c015ac45520d49faa0e7d7 \ No newline at end of file diff --git a/inherit_graph_137.png b/inherit_graph_137.png index c5d37cf35..6a07b1b6c 100644 Binary files a/inherit_graph_137.png and b/inherit_graph_137.png differ diff --git a/inherit_graph_138.map b/inherit_graph_138.map index 26a17376d..122e89ee7 100644 --- a/inherit_graph_138.map +++ b/inherit_graph_138.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_138.md5 b/inherit_graph_138.md5 index cf75ff325..53c4997c3 100644 --- a/inherit_graph_138.md5 +++ b/inherit_graph_138.md5 @@ -1 +1 @@ -9c2e416d7878932b0a87489324431ab5 \ No newline at end of file +7ca2525f19cc25cbc3da01746c5b0211 \ No newline at end of file diff --git a/inherit_graph_138.png b/inherit_graph_138.png index fb3ff6761..115999147 100644 Binary files a/inherit_graph_138.png and b/inherit_graph_138.png differ diff --git a/inherit_graph_139.map b/inherit_graph_139.map index cd12f6c5c..f5536c0f3 100644 --- a/inherit_graph_139.map +++ b/inherit_graph_139.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_139.md5 b/inherit_graph_139.md5 index 147341b07..533217e61 100644 --- a/inherit_graph_139.md5 +++ b/inherit_graph_139.md5 @@ -1 +1 @@ -fed123d41bb565808b0d7286c7db6b6b \ No newline at end of file +4b9780fb5164b8d66386b23fb87348d9 \ No newline at end of file diff --git a/inherit_graph_139.png b/inherit_graph_139.png index b49c2809b..01b048784 100644 Binary files a/inherit_graph_139.png and b/inherit_graph_139.png differ diff --git a/inherit_graph_14.map b/inherit_graph_14.map index 2b9c74c2f..3a29665de 100644 --- a/inherit_graph_14.map +++ b/inherit_graph_14.map @@ -1,5 +1,15 @@ - - - + + + + + + + + + + + + + diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5 index 21f18274b..c536a8c73 100644 --- a/inherit_graph_14.md5 +++ b/inherit_graph_14.md5 @@ -1 +1 @@ -b9ccc31bc26d10e47bac9819950f3418 \ No newline at end of file +74f7675f4dbd48c8794e3148c7b3e2f6 \ No newline at end of file diff --git a/inherit_graph_14.png b/inherit_graph_14.png index ab4f3863c..88cecd4be 100644 Binary files a/inherit_graph_14.png and b/inherit_graph_14.png differ diff --git a/inherit_graph_140.map b/inherit_graph_140.map index 94c6fcfee..8998c3aa5 100644 --- a/inherit_graph_140.map +++ b/inherit_graph_140.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_140.md5 b/inherit_graph_140.md5 index 76603d1de..0a7894b31 100644 --- a/inherit_graph_140.md5 +++ b/inherit_graph_140.md5 @@ -1 +1 @@ -b93e72808f9061dd00a7b4f79431eab9 \ No newline at end of file +b0feda975d659e5ffc3cc18c02067bd4 \ No newline at end of file diff --git a/inherit_graph_140.png b/inherit_graph_140.png index d3db68f86..b55d1fa7f 100644 Binary files a/inherit_graph_140.png and b/inherit_graph_140.png differ diff --git a/inherit_graph_141.map b/inherit_graph_141.map index 6df3df22c..3b12bf2e8 100644 --- a/inherit_graph_141.map +++ b/inherit_graph_141.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_141.md5 b/inherit_graph_141.md5 index 83acc360f..615e951d8 100644 --- a/inherit_graph_141.md5 +++ b/inherit_graph_141.md5 @@ -1 +1 @@ -85711c2ea4d73f45b039cce8be403e5d \ No newline at end of file +939b5b7f8f8060572df76efae6044422 \ No newline at end of file diff --git a/inherit_graph_141.png b/inherit_graph_141.png index 7f80f01f6..b68a1a414 100644 Binary files a/inherit_graph_141.png and b/inherit_graph_141.png differ diff --git a/inherit_graph_142.map b/inherit_graph_142.map index ecd0a7624..426e2369b 100644 --- a/inherit_graph_142.map +++ b/inherit_graph_142.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_142.md5 b/inherit_graph_142.md5 index cfdba6b33..cda492144 100644 --- a/inherit_graph_142.md5 +++ b/inherit_graph_142.md5 @@ -1 +1 @@ -1ae7d304d542a699a9e51889edc03ac6 \ No newline at end of file +6637fc54ad98fb83bd5e61dc883721a7 \ No newline at end of file diff --git a/inherit_graph_142.png b/inherit_graph_142.png index 3e2c2d52e..20d20f98f 100644 Binary files a/inherit_graph_142.png and b/inherit_graph_142.png differ diff --git a/inherit_graph_143.map b/inherit_graph_143.map index b4d1596ba..472db544f 100644 --- a/inherit_graph_143.map +++ b/inherit_graph_143.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_143.md5 b/inherit_graph_143.md5 index af43cb999..0006aa477 100644 --- a/inherit_graph_143.md5 +++ b/inherit_graph_143.md5 @@ -1 +1 @@ -eebfe65f7367917e47b5ccf355e3f48c \ No newline at end of file +3e935539400960f11e58c02d1d3d4316 \ No newline at end of file diff --git a/inherit_graph_143.png b/inherit_graph_143.png index 1b8365048..ccff5150e 100644 Binary files a/inherit_graph_143.png and b/inherit_graph_143.png differ diff --git a/inherit_graph_144.map b/inherit_graph_144.map index 0d1797ada..b2ec7d637 100644 --- a/inherit_graph_144.map +++ b/inherit_graph_144.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_144.md5 b/inherit_graph_144.md5 index e121a31b1..35d5e1f7b 100644 --- a/inherit_graph_144.md5 +++ b/inherit_graph_144.md5 @@ -1 +1 @@ -a3e3cec815c015ac45520d49faa0e7d7 \ No newline at end of file +b6d35762f588df57f961c525c8fa32bc \ No newline at end of file diff --git a/inherit_graph_144.png b/inherit_graph_144.png index 6a07b1b6c..71736eeb1 100644 Binary files a/inherit_graph_144.png and b/inherit_graph_144.png differ diff --git a/inherit_graph_145.map b/inherit_graph_145.map index 122e89ee7..5b1339726 100644 --- a/inherit_graph_145.map +++ b/inherit_graph_145.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_145.md5 b/inherit_graph_145.md5 index 53c4997c3..ee07cac7f 100644 --- a/inherit_graph_145.md5 +++ b/inherit_graph_145.md5 @@ -1 +1 @@ -7ca2525f19cc25cbc3da01746c5b0211 \ No newline at end of file +7eeccceed1b8ee4c6d7353b7f525e02b \ No newline at end of file diff --git a/inherit_graph_145.png b/inherit_graph_145.png index 115999147..8c48e79d2 100644 Binary files a/inherit_graph_145.png and b/inherit_graph_145.png differ diff --git a/inherit_graph_146.map b/inherit_graph_146.map index f5536c0f3..86e403a48 100644 --- a/inherit_graph_146.map +++ b/inherit_graph_146.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_146.md5 b/inherit_graph_146.md5 index 533217e61..eb6f9c62c 100644 --- a/inherit_graph_146.md5 +++ b/inherit_graph_146.md5 @@ -1 +1 @@ -4b9780fb5164b8d66386b23fb87348d9 \ No newline at end of file +63d82da6017b9624da3e45bccae5deea \ No newline at end of file diff --git a/inherit_graph_146.png b/inherit_graph_146.png index 01b048784..053906c88 100644 Binary files a/inherit_graph_146.png and b/inherit_graph_146.png differ diff --git a/inherit_graph_147.map b/inherit_graph_147.map index 8998c3aa5..3d361f662 100644 --- a/inherit_graph_147.map +++ b/inherit_graph_147.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_147.md5 b/inherit_graph_147.md5 index 0a7894b31..cb652c2fd 100644 --- a/inherit_graph_147.md5 +++ b/inherit_graph_147.md5 @@ -1 +1 @@ -b0feda975d659e5ffc3cc18c02067bd4 \ No newline at end of file +1ec8d0b99e870a3119c62aa23208706e \ No newline at end of file diff --git a/inherit_graph_147.png b/inherit_graph_147.png index b55d1fa7f..30760353e 100644 Binary files a/inherit_graph_147.png and b/inherit_graph_147.png differ diff --git a/inherit_graph_148.map b/inherit_graph_148.map index 3b12bf2e8..62305b38b 100644 --- a/inherit_graph_148.map +++ b/inherit_graph_148.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_148.md5 b/inherit_graph_148.md5 index 615e951d8..20b5f1ec7 100644 --- a/inherit_graph_148.md5 +++ b/inherit_graph_148.md5 @@ -1 +1 @@ -939b5b7f8f8060572df76efae6044422 \ No newline at end of file +cb316b9fcf8f60d54fba94581949cf72 \ No newline at end of file diff --git a/inherit_graph_148.png b/inherit_graph_148.png index b68a1a414..5e23a0d5f 100644 Binary files a/inherit_graph_148.png and b/inherit_graph_148.png differ diff --git a/inherit_graph_149.map b/inherit_graph_149.map index 426e2369b..5c73c219f 100644 --- a/inherit_graph_149.map +++ b/inherit_graph_149.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_149.md5 b/inherit_graph_149.md5 index cda492144..c452e499c 100644 --- a/inherit_graph_149.md5 +++ b/inherit_graph_149.md5 @@ -1 +1 @@ -6637fc54ad98fb83bd5e61dc883721a7 \ No newline at end of file +ed9a3ce1f63eda76703114b8c5c02298 \ No newline at end of file diff --git a/inherit_graph_149.png b/inherit_graph_149.png index 20d20f98f..3df0c8761 100644 Binary files a/inherit_graph_149.png and b/inherit_graph_149.png differ diff --git a/inherit_graph_15.map b/inherit_graph_15.map index 9fe2676cb..85812fa9c 100644 --- a/inherit_graph_15.map +++ b/inherit_graph_15.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_15.md5 b/inherit_graph_15.md5 index f0b63df10..5d46201ee 100644 --- a/inherit_graph_15.md5 +++ b/inherit_graph_15.md5 @@ -1 +1 @@ -fffa425dfa9b96a4ee3724704d00fe8d \ No newline at end of file +c05f058e8fa0d05b5ddf99c2390e65e1 \ No newline at end of file diff --git a/inherit_graph_15.png b/inherit_graph_15.png index 1a68a508e..a080d24f3 100644 Binary files a/inherit_graph_15.png and b/inherit_graph_15.png differ diff --git a/inherit_graph_150.map b/inherit_graph_150.map index 472db544f..d6e64ab7a 100644 --- a/inherit_graph_150.map +++ b/inherit_graph_150.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_150.md5 b/inherit_graph_150.md5 index 0006aa477..82ac511ba 100644 --- a/inherit_graph_150.md5 +++ b/inherit_graph_150.md5 @@ -1 +1 @@ -3e935539400960f11e58c02d1d3d4316 \ No newline at end of file +7230d30a69e7c7c0f89bdc47355dcad0 \ No newline at end of file diff --git a/inherit_graph_150.png b/inherit_graph_150.png index ccff5150e..833a4b72f 100644 Binary files a/inherit_graph_150.png and b/inherit_graph_150.png differ diff --git a/inherit_graph_151.map b/inherit_graph_151.map index b2ec7d637..cfc14554f 100644 --- a/inherit_graph_151.map +++ b/inherit_graph_151.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_151.md5 b/inherit_graph_151.md5 index 35d5e1f7b..44d3c936f 100644 --- a/inherit_graph_151.md5 +++ b/inherit_graph_151.md5 @@ -1 +1 @@ -b6d35762f588df57f961c525c8fa32bc \ No newline at end of file +3929edc83bf36b777b24e2edcea446af \ No newline at end of file diff --git a/inherit_graph_151.png b/inherit_graph_151.png index 71736eeb1..dcd4005c7 100644 Binary files a/inherit_graph_151.png and b/inherit_graph_151.png differ diff --git a/inherit_graph_152.map b/inherit_graph_152.map index 5b1339726..1191a4135 100644 --- a/inherit_graph_152.map +++ b/inherit_graph_152.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_152.md5 b/inherit_graph_152.md5 index ee07cac7f..d77fb929f 100644 --- a/inherit_graph_152.md5 +++ b/inherit_graph_152.md5 @@ -1 +1 @@ -7eeccceed1b8ee4c6d7353b7f525e02b \ No newline at end of file +46eabb0dd66add72521acf013e876301 \ No newline at end of file diff --git a/inherit_graph_152.png b/inherit_graph_152.png index 8c48e79d2..edbe33fca 100644 Binary files a/inherit_graph_152.png and b/inherit_graph_152.png differ diff --git a/inherit_graph_153.map b/inherit_graph_153.map index 86e403a48..e15132b0f 100644 --- a/inherit_graph_153.map +++ b/inherit_graph_153.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_153.md5 b/inherit_graph_153.md5 index eb6f9c62c..25043274f 100644 --- a/inherit_graph_153.md5 +++ b/inherit_graph_153.md5 @@ -1 +1 @@ -63d82da6017b9624da3e45bccae5deea \ No newline at end of file +c31a70cdb21c2f2a88515a58bf1c2347 \ No newline at end of file diff --git a/inherit_graph_153.png b/inherit_graph_153.png index 053906c88..e4e3675d4 100644 Binary files a/inherit_graph_153.png and b/inherit_graph_153.png differ diff --git a/inherit_graph_154.map b/inherit_graph_154.map index 3d361f662..f5556ca1a 100644 --- a/inherit_graph_154.map +++ b/inherit_graph_154.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_154.md5 b/inherit_graph_154.md5 index cb652c2fd..0c88062fa 100644 --- a/inherit_graph_154.md5 +++ b/inherit_graph_154.md5 @@ -1 +1 @@ -1ec8d0b99e870a3119c62aa23208706e \ No newline at end of file +60f25a3eae2e0dd4a0e6e4a670d8399e \ No newline at end of file diff --git a/inherit_graph_154.png b/inherit_graph_154.png index 30760353e..ac2071684 100644 Binary files a/inherit_graph_154.png and b/inherit_graph_154.png differ diff --git a/inherit_graph_155.map b/inherit_graph_155.map index 62305b38b..f5556ca1a 100644 --- a/inherit_graph_155.map +++ b/inherit_graph_155.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_155.md5 b/inherit_graph_155.md5 index 20b5f1ec7..0c88062fa 100644 --- a/inherit_graph_155.md5 +++ b/inherit_graph_155.md5 @@ -1 +1 @@ -cb316b9fcf8f60d54fba94581949cf72 \ No newline at end of file +60f25a3eae2e0dd4a0e6e4a670d8399e \ No newline at end of file diff --git a/inherit_graph_155.png b/inherit_graph_155.png index 5e23a0d5f..ac2071684 100644 Binary files a/inherit_graph_155.png and b/inherit_graph_155.png differ diff --git a/inherit_graph_156.map b/inherit_graph_156.map index 5c73c219f..ff9646623 100644 --- a/inherit_graph_156.map +++ b/inherit_graph_156.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_156.md5 b/inherit_graph_156.md5 index c452e499c..e68d01acf 100644 --- a/inherit_graph_156.md5 +++ b/inherit_graph_156.md5 @@ -1 +1 @@ -ed9a3ce1f63eda76703114b8c5c02298 \ No newline at end of file +0e5ff266b8417227b25cf58c347eebc8 \ No newline at end of file diff --git a/inherit_graph_156.png b/inherit_graph_156.png index 3df0c8761..792503882 100644 Binary files a/inherit_graph_156.png and b/inherit_graph_156.png differ diff --git a/inherit_graph_157.map b/inherit_graph_157.map deleted file mode 100644 index d6e64ab7a..000000000 --- a/inherit_graph_157.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_157.md5 b/inherit_graph_157.md5 deleted file mode 100644 index 82ac511ba..000000000 --- a/inherit_graph_157.md5 +++ /dev/null @@ -1 +0,0 @@ -7230d30a69e7c7c0f89bdc47355dcad0 \ No newline at end of file diff --git a/inherit_graph_157.png b/inherit_graph_157.png deleted file mode 100644 index 833a4b72f..000000000 Binary files a/inherit_graph_157.png and /dev/null differ diff --git a/inherit_graph_158.map b/inherit_graph_158.map deleted file mode 100644 index cfc14554f..000000000 --- a/inherit_graph_158.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_158.md5 b/inherit_graph_158.md5 deleted file mode 100644 index 44d3c936f..000000000 --- a/inherit_graph_158.md5 +++ /dev/null @@ -1 +0,0 @@ -3929edc83bf36b777b24e2edcea446af \ No newline at end of file diff --git a/inherit_graph_158.png b/inherit_graph_158.png deleted file mode 100644 index dcd4005c7..000000000 Binary files a/inherit_graph_158.png and /dev/null differ diff --git a/inherit_graph_159.map b/inherit_graph_159.map deleted file mode 100644 index 1191a4135..000000000 --- a/inherit_graph_159.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/inherit_graph_159.md5 b/inherit_graph_159.md5 deleted file mode 100644 index d77fb929f..000000000 --- a/inherit_graph_159.md5 +++ /dev/null @@ -1 +0,0 @@ -46eabb0dd66add72521acf013e876301 \ No newline at end of file diff --git a/inherit_graph_159.png b/inherit_graph_159.png deleted file mode 100644 index edbe33fca..000000000 Binary files a/inherit_graph_159.png and /dev/null differ diff --git a/inherit_graph_16.map b/inherit_graph_16.map index 98a6c3757..05d256d00 100644 --- a/inherit_graph_16.map +++ b/inherit_graph_16.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_16.md5 b/inherit_graph_16.md5 index 957fd3aeb..5f93ebf7c 100644 --- a/inherit_graph_16.md5 +++ b/inherit_graph_16.md5 @@ -1 +1 @@ -7d1a0ec6f13abb44a0d6fa0f79552bd9 \ No newline at end of file +fd412b0793d7488d068adb6e7e464d17 \ No newline at end of file diff --git a/inherit_graph_16.png b/inherit_graph_16.png index d0c64f368..0e9d8ac61 100644 Binary files a/inherit_graph_16.png and b/inherit_graph_16.png differ diff --git a/inherit_graph_160.map b/inherit_graph_160.map deleted file mode 100644 index e15132b0f..000000000 --- a/inherit_graph_160.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_160.md5 b/inherit_graph_160.md5 deleted file mode 100644 index 25043274f..000000000 --- a/inherit_graph_160.md5 +++ /dev/null @@ -1 +0,0 @@ -c31a70cdb21c2f2a88515a58bf1c2347 \ No newline at end of file diff --git a/inherit_graph_160.png b/inherit_graph_160.png deleted file mode 100644 index e4e3675d4..000000000 Binary files a/inherit_graph_160.png and /dev/null differ diff --git a/inherit_graph_161.map b/inherit_graph_161.map deleted file mode 100644 index f5556ca1a..000000000 --- a/inherit_graph_161.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_161.md5 b/inherit_graph_161.md5 deleted file mode 100644 index 0c88062fa..000000000 --- a/inherit_graph_161.md5 +++ /dev/null @@ -1 +0,0 @@ -60f25a3eae2e0dd4a0e6e4a670d8399e \ No newline at end of file diff --git a/inherit_graph_161.png b/inherit_graph_161.png deleted file mode 100644 index ac2071684..000000000 Binary files a/inherit_graph_161.png and /dev/null differ diff --git a/inherit_graph_17.map b/inherit_graph_17.map index a1ad6d062..0002789a9 100644 --- a/inherit_graph_17.map +++ b/inherit_graph_17.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_17.md5 b/inherit_graph_17.md5 index 78d399192..b54352fdb 100644 --- a/inherit_graph_17.md5 +++ b/inherit_graph_17.md5 @@ -1 +1 @@ -6bd9963df080c7a6ce4a7e7516273631 \ No newline at end of file +1b0ec15b3bab45ca83da48f544a84353 \ No newline at end of file diff --git a/inherit_graph_17.png b/inherit_graph_17.png index ba39c9c27..c28a82a3d 100644 Binary files a/inherit_graph_17.png and b/inherit_graph_17.png differ diff --git a/inherit_graph_18.map b/inherit_graph_18.map index caae40247..ea9478218 100644 --- a/inherit_graph_18.map +++ b/inherit_graph_18.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_18.md5 b/inherit_graph_18.md5 index 70db7122e..67d02220c 100644 --- a/inherit_graph_18.md5 +++ b/inherit_graph_18.md5 @@ -1 +1 @@ -3a96b0f5dfaee672b4228080b3315e15 \ No newline at end of file +f0f9e6cff1c2f251e0ec7b299dc2a436 \ No newline at end of file diff --git a/inherit_graph_18.png b/inherit_graph_18.png index 28b9c4eea..28d4a3a0e 100644 Binary files a/inherit_graph_18.png and b/inherit_graph_18.png differ diff --git a/inherit_graph_19.map b/inherit_graph_19.map index b02f7cfeb..92ed3673b 100644 --- a/inherit_graph_19.map +++ b/inherit_graph_19.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_19.md5 b/inherit_graph_19.md5 index 58eef6bca..a1ba3f80e 100644 --- a/inherit_graph_19.md5 +++ b/inherit_graph_19.md5 @@ -1 +1 @@ -58d7aebe21db6d1c0f03ef2a608152fb \ No newline at end of file +5851209ff6e5bb7ded0c76471b407c55 \ No newline at end of file diff --git a/inherit_graph_19.png b/inherit_graph_19.png index 87f6524cb..4f4304dec 100644 Binary files a/inherit_graph_19.png and b/inherit_graph_19.png differ diff --git a/inherit_graph_20.map b/inherit_graph_20.map index 85812fa9c..3ae317a56 100644 --- a/inherit_graph_20.map +++ b/inherit_graph_20.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_20.md5 b/inherit_graph_20.md5 index 5d46201ee..851d1be7f 100644 --- a/inherit_graph_20.md5 +++ b/inherit_graph_20.md5 @@ -1 +1 @@ -c05f058e8fa0d05b5ddf99c2390e65e1 \ No newline at end of file +a63707ba594808d52d6ac900e6de4340 \ No newline at end of file diff --git a/inherit_graph_20.png b/inherit_graph_20.png index a080d24f3..94edec496 100644 Binary files a/inherit_graph_20.png and b/inherit_graph_20.png differ diff --git a/inherit_graph_21.map b/inherit_graph_21.map index 05d256d00..0652c8bbc 100644 --- a/inherit_graph_21.map +++ b/inherit_graph_21.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_21.md5 b/inherit_graph_21.md5 index 5f93ebf7c..129d0cd67 100644 --- a/inherit_graph_21.md5 +++ b/inherit_graph_21.md5 @@ -1 +1 @@ -fd412b0793d7488d068adb6e7e464d17 \ No newline at end of file +5db6c69e63ff4a66ab368d3af5cb1959 \ No newline at end of file diff --git a/inherit_graph_21.png b/inherit_graph_21.png index 0e9d8ac61..24e0a46fa 100644 Binary files a/inherit_graph_21.png and b/inherit_graph_21.png differ diff --git a/inherit_graph_22.map b/inherit_graph_22.map index 0002789a9..cb6cf43c1 100644 --- a/inherit_graph_22.map +++ b/inherit_graph_22.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_22.md5 b/inherit_graph_22.md5 index b54352fdb..0abef8b16 100644 --- a/inherit_graph_22.md5 +++ b/inherit_graph_22.md5 @@ -1 +1 @@ -1b0ec15b3bab45ca83da48f544a84353 \ No newline at end of file +3b0dc35a8039cbbd0653291da6421591 \ No newline at end of file diff --git a/inherit_graph_22.png b/inherit_graph_22.png index c28a82a3d..0372ca3b1 100644 Binary files a/inherit_graph_22.png and b/inherit_graph_22.png differ diff --git a/inherit_graph_23.map b/inherit_graph_23.map index ea9478218..07343e901 100644 --- a/inherit_graph_23.map +++ b/inherit_graph_23.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_23.md5 b/inherit_graph_23.md5 index 67d02220c..d069ea964 100644 --- a/inherit_graph_23.md5 +++ b/inherit_graph_23.md5 @@ -1 +1 @@ -f0f9e6cff1c2f251e0ec7b299dc2a436 \ No newline at end of file +70dc47da1a0add5d49870b038bf5c2f0 \ No newline at end of file diff --git a/inherit_graph_23.png b/inherit_graph_23.png index 28d4a3a0e..41bb693cf 100644 Binary files a/inherit_graph_23.png and b/inherit_graph_23.png differ diff --git a/inherit_graph_24.map b/inherit_graph_24.map index 92ed3673b..25ee7f819 100644 --- a/inherit_graph_24.map +++ b/inherit_graph_24.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_24.md5 b/inherit_graph_24.md5 index a1ba3f80e..e9709b06b 100644 --- a/inherit_graph_24.md5 +++ b/inherit_graph_24.md5 @@ -1 +1 @@ -5851209ff6e5bb7ded0c76471b407c55 \ No newline at end of file +7390fe7b7d926fd9da65d3fbdc01b648 \ No newline at end of file diff --git a/inherit_graph_24.png b/inherit_graph_24.png index 4f4304dec..f7ef1bae5 100644 Binary files a/inherit_graph_24.png and b/inherit_graph_24.png differ diff --git a/inherit_graph_25.map b/inherit_graph_25.map index 3ae317a56..4e2ba8330 100644 --- a/inherit_graph_25.map +++ b/inherit_graph_25.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_25.md5 b/inherit_graph_25.md5 index 851d1be7f..a7d2f2a39 100644 --- a/inherit_graph_25.md5 +++ b/inherit_graph_25.md5 @@ -1 +1 @@ -a63707ba594808d52d6ac900e6de4340 \ No newline at end of file +df1dc7601445c6567f8c18d26dc3e8fc \ No newline at end of file diff --git a/inherit_graph_25.png b/inherit_graph_25.png index 94edec496..5bac0fde3 100644 Binary files a/inherit_graph_25.png and b/inherit_graph_25.png differ diff --git a/inherit_graph_26.map b/inherit_graph_26.map index 0652c8bbc..ed4555a4e 100644 --- a/inherit_graph_26.map +++ b/inherit_graph_26.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_26.md5 b/inherit_graph_26.md5 index 129d0cd67..1711c4f09 100644 --- a/inherit_graph_26.md5 +++ b/inherit_graph_26.md5 @@ -1 +1 @@ -5db6c69e63ff4a66ab368d3af5cb1959 \ No newline at end of file +8017e150163abf22ea02d7f18505723d \ No newline at end of file diff --git a/inherit_graph_26.png b/inherit_graph_26.png index 24e0a46fa..5034c0590 100644 Binary files a/inherit_graph_26.png and b/inherit_graph_26.png differ diff --git a/inherit_graph_27.map b/inherit_graph_27.map index cb6cf43c1..3e24dc794 100644 --- a/inherit_graph_27.map +++ b/inherit_graph_27.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_27.md5 b/inherit_graph_27.md5 index 0abef8b16..55eed0d78 100644 --- a/inherit_graph_27.md5 +++ b/inherit_graph_27.md5 @@ -1 +1 @@ -3b0dc35a8039cbbd0653291da6421591 \ No newline at end of file +9d30d0c7896e203585fe512d719115f9 \ No newline at end of file diff --git a/inherit_graph_27.png b/inherit_graph_27.png index 0372ca3b1..57e74441b 100644 Binary files a/inherit_graph_27.png and b/inherit_graph_27.png differ diff --git a/inherit_graph_28.map b/inherit_graph_28.map index 07343e901..3e722aeba 100644 --- a/inherit_graph_28.map +++ b/inherit_graph_28.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_28.md5 b/inherit_graph_28.md5 index d069ea964..54ec77305 100644 --- a/inherit_graph_28.md5 +++ b/inherit_graph_28.md5 @@ -1 +1 @@ -70dc47da1a0add5d49870b038bf5c2f0 \ No newline at end of file +74e3d3575f4ab7117008117499e89e23 \ No newline at end of file diff --git a/inherit_graph_28.png b/inherit_graph_28.png index 41bb693cf..3a37b4aab 100644 Binary files a/inherit_graph_28.png and b/inherit_graph_28.png differ diff --git a/inherit_graph_29.map b/inherit_graph_29.map index 25ee7f819..d5eb57ba5 100644 --- a/inherit_graph_29.map +++ b/inherit_graph_29.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_29.md5 b/inherit_graph_29.md5 index e9709b06b..04b667883 100644 --- a/inherit_graph_29.md5 +++ b/inherit_graph_29.md5 @@ -1 +1 @@ -7390fe7b7d926fd9da65d3fbdc01b648 \ No newline at end of file +850659062015bf402f1bfa310c7a38fa \ No newline at end of file diff --git a/inherit_graph_29.png b/inherit_graph_29.png index f7ef1bae5..c1a9215a1 100644 Binary files a/inherit_graph_29.png and b/inherit_graph_29.png differ diff --git a/inherit_graph_30.map b/inherit_graph_30.map index 4e2ba8330..68af0429f 100644 --- a/inherit_graph_30.map +++ b/inherit_graph_30.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_30.md5 b/inherit_graph_30.md5 index a7d2f2a39..c26a77615 100644 --- a/inherit_graph_30.md5 +++ b/inherit_graph_30.md5 @@ -1 +1 @@ -df1dc7601445c6567f8c18d26dc3e8fc \ No newline at end of file +bd597e3497f2bce2b0db81c7d1c746b7 \ No newline at end of file diff --git a/inherit_graph_30.png b/inherit_graph_30.png index 5bac0fde3..5341bd00a 100644 Binary files a/inherit_graph_30.png and b/inherit_graph_30.png differ diff --git a/inherit_graph_31.map b/inherit_graph_31.map index fa2a76f48..8a5225246 100644 --- a/inherit_graph_31.map +++ b/inherit_graph_31.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_31.md5 b/inherit_graph_31.md5 index 747727290..5ce090831 100644 --- a/inherit_graph_31.md5 +++ b/inherit_graph_31.md5 @@ -1 +1 @@ -8d4ac583b57d81a1c5e57fe3a3e3fe21 \ No newline at end of file +6986377c67085231043f117e4db98845 \ No newline at end of file diff --git a/inherit_graph_31.png b/inherit_graph_31.png index 74b18744a..941d5a4e8 100644 Binary files a/inherit_graph_31.png and b/inherit_graph_31.png differ diff --git a/inherit_graph_32.map b/inherit_graph_32.map index 3e24dc794..a0871422a 100644 --- a/inherit_graph_32.map +++ b/inherit_graph_32.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_32.md5 b/inherit_graph_32.md5 index 55eed0d78..75c6cdc01 100644 --- a/inherit_graph_32.md5 +++ b/inherit_graph_32.md5 @@ -1 +1 @@ -9d30d0c7896e203585fe512d719115f9 \ No newline at end of file +fc1a347d9fa74100769b2e1bca016a2b \ No newline at end of file diff --git a/inherit_graph_32.png b/inherit_graph_32.png index 57e74441b..2daddbd72 100644 Binary files a/inherit_graph_32.png and b/inherit_graph_32.png differ diff --git a/inherit_graph_33.map b/inherit_graph_33.map index 3e722aeba..b5be86562 100644 --- a/inherit_graph_33.map +++ b/inherit_graph_33.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_33.md5 b/inherit_graph_33.md5 index 54ec77305..0466e39e2 100644 --- a/inherit_graph_33.md5 +++ b/inherit_graph_33.md5 @@ -1 +1 @@ -74e3d3575f4ab7117008117499e89e23 \ No newline at end of file +8e3cff683729a4bae002920382bf319a \ No newline at end of file diff --git a/inherit_graph_33.png b/inherit_graph_33.png index 3a37b4aab..149da78d2 100644 Binary files a/inherit_graph_33.png and b/inherit_graph_33.png differ diff --git a/inherit_graph_34.map b/inherit_graph_34.map index d5eb57ba5..720faf210 100644 --- a/inherit_graph_34.map +++ b/inherit_graph_34.map @@ -1,3 +1,7 @@ - + + + + + diff --git a/inherit_graph_34.md5 b/inherit_graph_34.md5 index 04b667883..ac5db85d0 100644 --- a/inherit_graph_34.md5 +++ b/inherit_graph_34.md5 @@ -1 +1 @@ -850659062015bf402f1bfa310c7a38fa \ No newline at end of file +481f5cf224495b0cd742852f03a6cf7f \ No newline at end of file diff --git a/inherit_graph_34.png b/inherit_graph_34.png index c1a9215a1..36e07e5c1 100644 Binary files a/inherit_graph_34.png and b/inherit_graph_34.png differ diff --git a/inherit_graph_35.map b/inherit_graph_35.map index 68af0429f..7941c2f96 100644 --- a/inherit_graph_35.map +++ b/inherit_graph_35.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_35.md5 b/inherit_graph_35.md5 index c26a77615..e0798c738 100644 --- a/inherit_graph_35.md5 +++ b/inherit_graph_35.md5 @@ -1 +1 @@ -bd597e3497f2bce2b0db81c7d1c746b7 \ No newline at end of file +a1b40df1e3b79dabbd8ea458ed58c0d1 \ No newline at end of file diff --git a/inherit_graph_35.png b/inherit_graph_35.png index 5341bd00a..e380b0535 100644 Binary files a/inherit_graph_35.png and b/inherit_graph_35.png differ diff --git a/inherit_graph_36.map b/inherit_graph_36.map index 8a5225246..fb5695524 100644 --- a/inherit_graph_36.map +++ b/inherit_graph_36.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_36.md5 b/inherit_graph_36.md5 index 5ce090831..afef6a814 100644 --- a/inherit_graph_36.md5 +++ b/inherit_graph_36.md5 @@ -1 +1 @@ -6986377c67085231043f117e4db98845 \ No newline at end of file +5f0ea899d9a5ff0f21c8b58d589f2a1a \ No newline at end of file diff --git a/inherit_graph_36.png b/inherit_graph_36.png index 941d5a4e8..283c4b0a5 100644 Binary files a/inherit_graph_36.png and b/inherit_graph_36.png differ diff --git a/inherit_graph_37.map b/inherit_graph_37.map index a0871422a..9dc2f2c67 100644 --- a/inherit_graph_37.map +++ b/inherit_graph_37.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_37.md5 b/inherit_graph_37.md5 index 75c6cdc01..3d7a83351 100644 --- a/inherit_graph_37.md5 +++ b/inherit_graph_37.md5 @@ -1 +1 @@ -fc1a347d9fa74100769b2e1bca016a2b \ No newline at end of file +a181fdd14bf06cf835afadd655520bd2 \ No newline at end of file diff --git a/inherit_graph_37.png b/inherit_graph_37.png index 2daddbd72..0843099d2 100644 Binary files a/inherit_graph_37.png and b/inherit_graph_37.png differ diff --git a/inherit_graph_38.map b/inherit_graph_38.map index 3254a7c08..840685c5f 100644 --- a/inherit_graph_38.map +++ b/inherit_graph_38.map @@ -1,4 +1,4 @@ - - + + diff --git a/inherit_graph_38.md5 b/inherit_graph_38.md5 index bf8f56a0b..a258654f6 100644 --- a/inherit_graph_38.md5 +++ b/inherit_graph_38.md5 @@ -1 +1 @@ -08ed2183371e20dea2fb2450b4b6c4f1 \ No newline at end of file +cb89d1b5ae72bd290d9683ceb3e7c000 \ No newline at end of file diff --git a/inherit_graph_38.png b/inherit_graph_38.png index b66620697..f32d1b6d4 100644 Binary files a/inherit_graph_38.png and b/inherit_graph_38.png differ diff --git a/inherit_graph_39.map b/inherit_graph_39.map index 3df99290d..7ac9f1f7c 100644 --- a/inherit_graph_39.map +++ b/inherit_graph_39.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_39.md5 b/inherit_graph_39.md5 index 8f0788b3d..5ef4d8f72 100644 --- a/inherit_graph_39.md5 +++ b/inherit_graph_39.md5 @@ -1 +1 @@ -0839b746282f0d05d43f7d703a854607 \ No newline at end of file +baec25b806efacb2194350404f5be867 \ No newline at end of file diff --git a/inherit_graph_39.png b/inherit_graph_39.png index 6b2a88f19..f8afca1ed 100644 Binary files a/inherit_graph_39.png and b/inherit_graph_39.png differ diff --git a/inherit_graph_40.map b/inherit_graph_40.map index 90a0c6c2c..9e51841da 100644 --- a/inherit_graph_40.map +++ b/inherit_graph_40.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_40.md5 b/inherit_graph_40.md5 index 808d4702e..38a837ba4 100644 --- a/inherit_graph_40.md5 +++ b/inherit_graph_40.md5 @@ -1 +1 @@ -f5bcdc22464b656a450b87a470829aaa \ No newline at end of file +c5901b19b636a1bfc079230d75c82021 \ No newline at end of file diff --git a/inherit_graph_40.png b/inherit_graph_40.png index 96261cfa4..279eea2ee 100644 Binary files a/inherit_graph_40.png and b/inherit_graph_40.png differ diff --git a/inherit_graph_41.map b/inherit_graph_41.map index 14289099a..887fd0cec 100644 --- a/inherit_graph_41.map +++ b/inherit_graph_41.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_41.md5 b/inherit_graph_41.md5 index 80c6f4535..c66feed88 100644 --- a/inherit_graph_41.md5 +++ b/inherit_graph_41.md5 @@ -1 +1 @@ -aa41c098f703af17138577c1caa02826 \ No newline at end of file +49e791c1edeb10b0b5043aa57360d7a3 \ No newline at end of file diff --git a/inherit_graph_41.png b/inherit_graph_41.png index cfbc10ce0..03728da81 100644 Binary files a/inherit_graph_41.png and b/inherit_graph_41.png differ diff --git a/inherit_graph_42.map b/inherit_graph_42.map index cb9bee633..c317666f3 100644 --- a/inherit_graph_42.map +++ b/inherit_graph_42.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_42.md5 b/inherit_graph_42.md5 index 9dbcbb8e9..16f443bc2 100644 --- a/inherit_graph_42.md5 +++ b/inherit_graph_42.md5 @@ -1 +1 @@ -7015cb846be8cfed43229cbb75e46c68 \ No newline at end of file +ba02c371a07999b60a6a594e76432037 \ No newline at end of file diff --git a/inherit_graph_42.png b/inherit_graph_42.png index 9065af2eb..d0e19e622 100644 Binary files a/inherit_graph_42.png and b/inherit_graph_42.png differ diff --git a/inherit_graph_43.map b/inherit_graph_43.map index 2bf9bf50d..1c53051a7 100644 --- a/inherit_graph_43.map +++ b/inherit_graph_43.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_43.md5 b/inherit_graph_43.md5 index 0d848f10d..f0a729d9c 100644 --- a/inherit_graph_43.md5 +++ b/inherit_graph_43.md5 @@ -1 +1 @@ -fdd665a02a56c1444d85912aab9ab490 \ No newline at end of file +732814765e4e495016c727ede78a0d28 \ No newline at end of file diff --git a/inherit_graph_43.png b/inherit_graph_43.png index 277225d1b..47c1990ff 100644 Binary files a/inherit_graph_43.png and b/inherit_graph_43.png differ diff --git a/inherit_graph_44.map b/inherit_graph_44.map index 88457aee9..7da8d4aa1 100644 --- a/inherit_graph_44.map +++ b/inherit_graph_44.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_44.md5 b/inherit_graph_44.md5 index 54a7ed74e..772865e8b 100644 --- a/inherit_graph_44.md5 +++ b/inherit_graph_44.md5 @@ -1 +1 @@ -2838b14b173c96e5bfac80bb9ca340bf \ No newline at end of file +69b26adc13fab23ce85e71dd1e0cd551 \ No newline at end of file diff --git a/inherit_graph_44.png b/inherit_graph_44.png index e380b0535..46a08aa09 100644 Binary files a/inherit_graph_44.png and b/inherit_graph_44.png differ diff --git a/inherit_graph_45.map b/inherit_graph_45.map index 9e51841da..30a816aa0 100644 --- a/inherit_graph_45.map +++ b/inherit_graph_45.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_45.md5 b/inherit_graph_45.md5 index 38a837ba4..13acdea92 100644 --- a/inherit_graph_45.md5 +++ b/inherit_graph_45.md5 @@ -1 +1 @@ -c5901b19b636a1bfc079230d75c82021 \ No newline at end of file +1b89d7c751ab55bb7684be33105e985c \ No newline at end of file diff --git a/inherit_graph_45.png b/inherit_graph_45.png index 279eea2ee..6d38f1c3f 100644 Binary files a/inherit_graph_45.png and b/inherit_graph_45.png differ diff --git a/inherit_graph_46.map b/inherit_graph_46.map index 887fd0cec..e419c0f74 100644 --- a/inherit_graph_46.map +++ b/inherit_graph_46.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_46.md5 b/inherit_graph_46.md5 index c66feed88..61a7d990e 100644 --- a/inherit_graph_46.md5 +++ b/inherit_graph_46.md5 @@ -1 +1 @@ -49e791c1edeb10b0b5043aa57360d7a3 \ No newline at end of file +6c7da3eee6c8abaf6d4d3d417b870b0a \ No newline at end of file diff --git a/inherit_graph_46.png b/inherit_graph_46.png index 03728da81..de6194bbe 100644 Binary files a/inherit_graph_46.png and b/inherit_graph_46.png differ diff --git a/inherit_graph_47.map b/inherit_graph_47.map index c317666f3..d75f18d59 100644 --- a/inherit_graph_47.map +++ b/inherit_graph_47.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_47.md5 b/inherit_graph_47.md5 index 16f443bc2..5e3311cfa 100644 --- a/inherit_graph_47.md5 +++ b/inherit_graph_47.md5 @@ -1 +1 @@ -ba02c371a07999b60a6a594e76432037 \ No newline at end of file +09922e1f687dbf59c4d49a553a055e3d \ No newline at end of file diff --git a/inherit_graph_47.png b/inherit_graph_47.png index d0e19e622..8299d1f06 100644 Binary files a/inherit_graph_47.png and b/inherit_graph_47.png differ diff --git a/inherit_graph_48.map b/inherit_graph_48.map index 1c53051a7..ddbf65464 100644 --- a/inherit_graph_48.map +++ b/inherit_graph_48.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_48.md5 b/inherit_graph_48.md5 index f0a729d9c..cb2387151 100644 --- a/inherit_graph_48.md5 +++ b/inherit_graph_48.md5 @@ -1 +1 @@ -732814765e4e495016c727ede78a0d28 \ No newline at end of file +dc9eabf5e5e1c20f1032c2e935cf9897 \ No newline at end of file diff --git a/inherit_graph_48.png b/inherit_graph_48.png index 47c1990ff..31ae6ec2e 100644 Binary files a/inherit_graph_48.png and b/inherit_graph_48.png differ diff --git a/inherit_graph_49.map b/inherit_graph_49.map index 7da8d4aa1..771502692 100644 --- a/inherit_graph_49.map +++ b/inherit_graph_49.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_49.md5 b/inherit_graph_49.md5 index 772865e8b..3d55d6e9c 100644 --- a/inherit_graph_49.md5 +++ b/inherit_graph_49.md5 @@ -1 +1 @@ -69b26adc13fab23ce85e71dd1e0cd551 \ No newline at end of file +13a63cca5df4d47b4697db93b9fe2ed8 \ No newline at end of file diff --git a/inherit_graph_49.png b/inherit_graph_49.png index 46a08aa09..9b2049208 100644 Binary files a/inherit_graph_49.png and b/inherit_graph_49.png differ diff --git a/inherit_graph_50.map b/inherit_graph_50.map index 30a816aa0..15642222d 100644 --- a/inherit_graph_50.map +++ b/inherit_graph_50.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_50.md5 b/inherit_graph_50.md5 index 13acdea92..2b467d204 100644 --- a/inherit_graph_50.md5 +++ b/inherit_graph_50.md5 @@ -1 +1 @@ -1b89d7c751ab55bb7684be33105e985c \ No newline at end of file +45fb2d53b7ee74861389444cd3ea99ab \ No newline at end of file diff --git a/inherit_graph_50.png b/inherit_graph_50.png index 6d38f1c3f..9d7dde5d0 100644 Binary files a/inherit_graph_50.png and b/inherit_graph_50.png differ diff --git a/inherit_graph_51.map b/inherit_graph_51.map index e419c0f74..95aeff9f2 100644 --- a/inherit_graph_51.map +++ b/inherit_graph_51.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_51.md5 b/inherit_graph_51.md5 index 61a7d990e..634c3228d 100644 --- a/inherit_graph_51.md5 +++ b/inherit_graph_51.md5 @@ -1 +1 @@ -6c7da3eee6c8abaf6d4d3d417b870b0a \ No newline at end of file +61152ccf529536384a74e09d88bc2fb3 \ No newline at end of file diff --git a/inherit_graph_51.png b/inherit_graph_51.png index de6194bbe..7572c9c8e 100644 Binary files a/inherit_graph_51.png and b/inherit_graph_51.png differ diff --git a/inherit_graph_52.map b/inherit_graph_52.map index d75f18d59..2e77a79b9 100644 --- a/inherit_graph_52.map +++ b/inherit_graph_52.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_52.md5 b/inherit_graph_52.md5 index 5e3311cfa..081332bd0 100644 --- a/inherit_graph_52.md5 +++ b/inherit_graph_52.md5 @@ -1 +1 @@ -09922e1f687dbf59c4d49a553a055e3d \ No newline at end of file +8dda8d619f7dc58395de93e2dcd57a2d \ No newline at end of file diff --git a/inherit_graph_52.png b/inherit_graph_52.png index 8299d1f06..2c7aeedba 100644 Binary files a/inherit_graph_52.png and b/inherit_graph_52.png differ diff --git a/inherit_graph_53.map b/inherit_graph_53.map index ddbf65464..4bd63adcb 100644 --- a/inherit_graph_53.map +++ b/inherit_graph_53.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_53.md5 b/inherit_graph_53.md5 index cb2387151..f1a69eb13 100644 --- a/inherit_graph_53.md5 +++ b/inherit_graph_53.md5 @@ -1 +1 @@ -dc9eabf5e5e1c20f1032c2e935cf9897 \ No newline at end of file +8daedf53dda3e13b6cc1b6c395230a1b \ No newline at end of file diff --git a/inherit_graph_53.png b/inherit_graph_53.png index 31ae6ec2e..aef95db1e 100644 Binary files a/inherit_graph_53.png and b/inherit_graph_53.png differ diff --git a/inherit_graph_54.map b/inherit_graph_54.map index 771502692..70d1bff20 100644 --- a/inherit_graph_54.map +++ b/inherit_graph_54.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_54.md5 b/inherit_graph_54.md5 index 3d55d6e9c..e399c3829 100644 --- a/inherit_graph_54.md5 +++ b/inherit_graph_54.md5 @@ -1 +1 @@ -13a63cca5df4d47b4697db93b9fe2ed8 \ No newline at end of file +7061c9d8a467465edfae671eee6e6ca1 \ No newline at end of file diff --git a/inherit_graph_54.png b/inherit_graph_54.png index 9b2049208..1a998a2df 100644 Binary files a/inherit_graph_54.png and b/inherit_graph_54.png differ diff --git a/inherit_graph_55.map b/inherit_graph_55.map index 15642222d..e41da3fb4 100644 --- a/inherit_graph_55.map +++ b/inherit_graph_55.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_55.md5 b/inherit_graph_55.md5 index 2b467d204..144518791 100644 --- a/inherit_graph_55.md5 +++ b/inherit_graph_55.md5 @@ -1 +1 @@ -45fb2d53b7ee74861389444cd3ea99ab \ No newline at end of file +7c753ea0d4139f64750c7b9df27554e8 \ No newline at end of file diff --git a/inherit_graph_55.png b/inherit_graph_55.png index 9d7dde5d0..0f30c6c2d 100644 Binary files a/inherit_graph_55.png and b/inherit_graph_55.png differ diff --git a/inherit_graph_56.map b/inherit_graph_56.map index 95aeff9f2..652f150dd 100644 --- a/inherit_graph_56.map +++ b/inherit_graph_56.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_56.md5 b/inherit_graph_56.md5 index 634c3228d..30c3714e8 100644 --- a/inherit_graph_56.md5 +++ b/inherit_graph_56.md5 @@ -1 +1 @@ -61152ccf529536384a74e09d88bc2fb3 \ No newline at end of file +6e93abd8e7b95092e983b5f2cc2b29c6 \ No newline at end of file diff --git a/inherit_graph_56.png b/inherit_graph_56.png index 7572c9c8e..e820421dc 100644 Binary files a/inherit_graph_56.png and b/inherit_graph_56.png differ diff --git a/inherit_graph_57.map b/inherit_graph_57.map index 2e77a79b9..542d5d2cf 100644 --- a/inherit_graph_57.map +++ b/inherit_graph_57.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_57.md5 b/inherit_graph_57.md5 index 081332bd0..284e5d785 100644 --- a/inherit_graph_57.md5 +++ b/inherit_graph_57.md5 @@ -1 +1 @@ -8dda8d619f7dc58395de93e2dcd57a2d \ No newline at end of file +2da64566f7064b7b3c4596690998415f \ No newline at end of file diff --git a/inherit_graph_57.png b/inherit_graph_57.png index 2c7aeedba..2eb54ac00 100644 Binary files a/inherit_graph_57.png and b/inherit_graph_57.png differ diff --git a/inherit_graph_58.map b/inherit_graph_58.map index 4bd63adcb..82d8ad703 100644 --- a/inherit_graph_58.map +++ b/inherit_graph_58.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_58.md5 b/inherit_graph_58.md5 index f1a69eb13..c4d7001ed 100644 --- a/inherit_graph_58.md5 +++ b/inherit_graph_58.md5 @@ -1 +1 @@ -8daedf53dda3e13b6cc1b6c395230a1b \ No newline at end of file +7aa249af62db2ce8b78044d7704497f5 \ No newline at end of file diff --git a/inherit_graph_58.png b/inherit_graph_58.png index aef95db1e..75fdf0891 100644 Binary files a/inherit_graph_58.png and b/inherit_graph_58.png differ diff --git a/inherit_graph_59.map b/inherit_graph_59.map index 70d1bff20..677b93035 100644 --- a/inherit_graph_59.map +++ b/inherit_graph_59.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_59.md5 b/inherit_graph_59.md5 index e399c3829..37efeae54 100644 --- a/inherit_graph_59.md5 +++ b/inherit_graph_59.md5 @@ -1 +1 @@ -7061c9d8a467465edfae671eee6e6ca1 \ No newline at end of file +935f12b6e01aec30ae80dcbda4722faa \ No newline at end of file diff --git a/inherit_graph_59.png b/inherit_graph_59.png index 1a998a2df..75a83064a 100644 Binary files a/inherit_graph_59.png and b/inherit_graph_59.png differ diff --git a/inherit_graph_60.map b/inherit_graph_60.map index e55a0be63..6bba07f7e 100644 --- a/inherit_graph_60.map +++ b/inherit_graph_60.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_60.md5 b/inherit_graph_60.md5 index a974f187b..648b80198 100644 --- a/inherit_graph_60.md5 +++ b/inherit_graph_60.md5 @@ -1 +1 @@ -0c82be0cd918157b77ac3ab1e1189864 \ No newline at end of file +18b0da33f53252ee77b4d3dc6c4075a5 \ No newline at end of file diff --git a/inherit_graph_60.png b/inherit_graph_60.png index 1702dcdc6..bbd10a184 100644 Binary files a/inherit_graph_60.png and b/inherit_graph_60.png differ diff --git a/inherit_graph_61.map b/inherit_graph_61.map index 72c9d7d4f..6e6ff2e10 100644 --- a/inherit_graph_61.map +++ b/inherit_graph_61.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_61.md5 b/inherit_graph_61.md5 index 0a5f771f7..c73c14645 100644 --- a/inherit_graph_61.md5 +++ b/inherit_graph_61.md5 @@ -1 +1 @@ -3d9f819d9ffc2519a5175d11b35948e2 \ No newline at end of file +65ce50b1c3d0eb383d7a114325df57ac \ No newline at end of file diff --git a/inherit_graph_61.png b/inherit_graph_61.png index e4b2f908b..0becd0f04 100644 Binary files a/inherit_graph_61.png and b/inherit_graph_61.png differ diff --git a/inherit_graph_62.map b/inherit_graph_62.map index 1b7748b11..376f2b25a 100644 --- a/inherit_graph_62.map +++ b/inherit_graph_62.map @@ -1,3 +1,5 @@ - + + + diff --git a/inherit_graph_62.md5 b/inherit_graph_62.md5 index 3897bc411..22156723f 100644 --- a/inherit_graph_62.md5 +++ b/inherit_graph_62.md5 @@ -1 +1 @@ -e2d21b01d085642d01366e8bf71f9e27 \ No newline at end of file +4ffcd45390032dea3b3394781b6dd0a0 \ No newline at end of file diff --git a/inherit_graph_62.png b/inherit_graph_62.png index f89b4255d..f67ced5b2 100644 Binary files a/inherit_graph_62.png and b/inherit_graph_62.png differ diff --git a/inherit_graph_63.map b/inherit_graph_63.map index a95c8db2d..c888591e4 100644 --- a/inherit_graph_63.map +++ b/inherit_graph_63.map @@ -1,4 +1,4 @@ - - + + diff --git a/inherit_graph_63.md5 b/inherit_graph_63.md5 index e7627948d..2bfb65b14 100644 --- a/inherit_graph_63.md5 +++ b/inherit_graph_63.md5 @@ -1 +1 @@ -3d761f6738fd5d411a09fd8fd499b934 \ No newline at end of file +110a589c882db6e83ff92349a5d9325a \ No newline at end of file diff --git a/inherit_graph_63.png b/inherit_graph_63.png index 66359837c..6af5c4d78 100644 Binary files a/inherit_graph_63.png and b/inherit_graph_63.png differ diff --git a/inherit_graph_64.map b/inherit_graph_64.map index 10d16e0d6..c2101a8c1 100644 --- a/inherit_graph_64.map +++ b/inherit_graph_64.map @@ -1,3 +1,10 @@ - + + + + + + + + diff --git a/inherit_graph_64.md5 b/inherit_graph_64.md5 index 2ef06faac..52d80dbd7 100644 --- a/inherit_graph_64.md5 +++ b/inherit_graph_64.md5 @@ -1 +1 @@ -ad4b8fd30530c7254cae0890af0f5d12 \ No newline at end of file +371a37783368356dd4b444408bf44ecc \ No newline at end of file diff --git a/inherit_graph_64.png b/inherit_graph_64.png index 53c09884f..24bef92f4 100644 Binary files a/inherit_graph_64.png and b/inherit_graph_64.png differ diff --git a/inherit_graph_65.map b/inherit_graph_65.map index 542d5d2cf..98b110e59 100644 --- a/inherit_graph_65.map +++ b/inherit_graph_65.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_65.md5 b/inherit_graph_65.md5 index 284e5d785..71df9d229 100644 --- a/inherit_graph_65.md5 +++ b/inherit_graph_65.md5 @@ -1 +1 @@ -2da64566f7064b7b3c4596690998415f \ No newline at end of file +0ab0da8d7ab50c8777c478d90791ebcf \ No newline at end of file diff --git a/inherit_graph_65.png b/inherit_graph_65.png index 2eb54ac00..e4a470750 100644 Binary files a/inherit_graph_65.png and b/inherit_graph_65.png differ diff --git a/inherit_graph_66.map b/inherit_graph_66.map index 82d8ad703..8cf838d68 100644 --- a/inherit_graph_66.map +++ b/inherit_graph_66.map @@ -1,3 +1,15 @@ - + + + + + + + + + + + + + diff --git a/inherit_graph_66.md5 b/inherit_graph_66.md5 index c4d7001ed..577e2f4e7 100644 --- a/inherit_graph_66.md5 +++ b/inherit_graph_66.md5 @@ -1 +1 @@ -7aa249af62db2ce8b78044d7704497f5 \ No newline at end of file +dbc4dee19898c8af3fb2d7e201fb8a97 \ No newline at end of file diff --git a/inherit_graph_66.png b/inherit_graph_66.png index 75fdf0891..af9362781 100644 Binary files a/inherit_graph_66.png and b/inherit_graph_66.png differ diff --git a/inherit_graph_67.map b/inherit_graph_67.map index 677b93035..327b76e24 100644 --- a/inherit_graph_67.map +++ b/inherit_graph_67.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_67.md5 b/inherit_graph_67.md5 index 37efeae54..eed5cf60a 100644 --- a/inherit_graph_67.md5 +++ b/inherit_graph_67.md5 @@ -1 +1 @@ -935f12b6e01aec30ae80dcbda4722faa \ No newline at end of file +eb3473fa898b4198781a94f7fe479d98 \ No newline at end of file diff --git a/inherit_graph_67.png b/inherit_graph_67.png index 75a83064a..e9b1c6928 100644 Binary files a/inherit_graph_67.png and b/inherit_graph_67.png differ diff --git a/inherit_graph_68.map b/inherit_graph_68.map index 6bba07f7e..ec19cac2c 100644 --- a/inherit_graph_68.map +++ b/inherit_graph_68.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_68.md5 b/inherit_graph_68.md5 index 648b80198..086d99a9f 100644 --- a/inherit_graph_68.md5 +++ b/inherit_graph_68.md5 @@ -1 +1 @@ -18b0da33f53252ee77b4d3dc6c4075a5 \ No newline at end of file +076fb0c0e11ef1896e2f71b8405f148e \ No newline at end of file diff --git a/inherit_graph_68.png b/inherit_graph_68.png index bbd10a184..6fd200838 100644 Binary files a/inherit_graph_68.png and b/inherit_graph_68.png differ diff --git a/inherit_graph_69.map b/inherit_graph_69.map index 6e6ff2e10..22ad069bf 100644 --- a/inherit_graph_69.map +++ b/inherit_graph_69.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_69.md5 b/inherit_graph_69.md5 index c73c14645..c0c1568c9 100644 --- a/inherit_graph_69.md5 +++ b/inherit_graph_69.md5 @@ -1 +1 @@ -65ce50b1c3d0eb383d7a114325df57ac \ No newline at end of file +4c42764b88de6d9c061cd8b129182dc4 \ No newline at end of file diff --git a/inherit_graph_69.png b/inherit_graph_69.png index 0becd0f04..198594432 100644 Binary files a/inherit_graph_69.png and b/inherit_graph_69.png differ diff --git a/inherit_graph_70.map b/inherit_graph_70.map index fdfccf5c2..a43071256 100644 --- a/inherit_graph_70.map +++ b/inherit_graph_70.map @@ -1,5 +1,3 @@ - - - + diff --git a/inherit_graph_70.md5 b/inherit_graph_70.md5 index 9815bdf1c..af4271873 100644 --- a/inherit_graph_70.md5 +++ b/inherit_graph_70.md5 @@ -1 +1 @@ -6f65f71e33fdd953edf3c878224fa9fb \ No newline at end of file +330b475a39e3bca506a5dc1f4d5964aa \ No newline at end of file diff --git a/inherit_graph_70.png b/inherit_graph_70.png index f3088814e..2fc1ba3dc 100644 Binary files a/inherit_graph_70.png and b/inherit_graph_70.png differ diff --git a/inherit_graph_71.map b/inherit_graph_71.map index 8e5421cb1..855c45bae 100644 --- a/inherit_graph_71.map +++ b/inherit_graph_71.map @@ -1,11 +1,3 @@ - - - - - - - - - + diff --git a/inherit_graph_71.md5 b/inherit_graph_71.md5 index 503f02016..f70f2fa33 100644 --- a/inherit_graph_71.md5 +++ b/inherit_graph_71.md5 @@ -1 +1 @@ -f63f0e06b4ecf9777e888887946b71a6 \ No newline at end of file +4027cff6f3712e6a72b6f936e5acb66c \ No newline at end of file diff --git a/inherit_graph_71.png b/inherit_graph_71.png index 57d894b78..d98f154d2 100644 Binary files a/inherit_graph_71.png and b/inherit_graph_71.png differ diff --git a/inherit_graph_72.map b/inherit_graph_72.map index e101a55c6..56ce580df 100644 --- a/inherit_graph_72.map +++ b/inherit_graph_72.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_72.md5 b/inherit_graph_72.md5 index a50dbdb2c..298c34047 100644 --- a/inherit_graph_72.md5 +++ b/inherit_graph_72.md5 @@ -1 +1 @@ -f4cde6d25075eb892746a03809ab66e0 \ No newline at end of file +a773c5305e18d45fc936d9050e26c065 \ No newline at end of file diff --git a/inherit_graph_72.png b/inherit_graph_72.png index 3e24755ee..bdf133ce8 100644 Binary files a/inherit_graph_72.png and b/inherit_graph_72.png differ diff --git a/inherit_graph_73.map b/inherit_graph_73.map index 4c474dd29..026c3e0fb 100644 --- a/inherit_graph_73.map +++ b/inherit_graph_73.map @@ -1,9 +1,3 @@ - - - - - - - + diff --git a/inherit_graph_73.md5 b/inherit_graph_73.md5 index cd4ae53fd..c8597f68f 100644 --- a/inherit_graph_73.md5 +++ b/inherit_graph_73.md5 @@ -1 +1 @@ -6f96bbaab3632c2bea26bbb6563c3254 \ No newline at end of file +91c00f5ff5bc0b3f1beb39a8ec570958 \ No newline at end of file diff --git a/inherit_graph_73.png b/inherit_graph_73.png index 41d86d7fc..8e8e156c8 100644 Binary files a/inherit_graph_73.png and b/inherit_graph_73.png differ diff --git a/inherit_graph_74.map b/inherit_graph_74.map index 9df94ad0d..7972806ee 100644 --- a/inherit_graph_74.map +++ b/inherit_graph_74.map @@ -1,4 +1,4 @@ - - + + diff --git a/inherit_graph_74.md5 b/inherit_graph_74.md5 index 95b1e23b0..7a21ff1a1 100644 --- a/inherit_graph_74.md5 +++ b/inherit_graph_74.md5 @@ -1 +1 @@ -c0c1e154923786b04ddff06dc92d38ca \ No newline at end of file +dc027d08f8114fd9996100fdb9afea71 \ No newline at end of file diff --git a/inherit_graph_74.png b/inherit_graph_74.png index dc24024ac..253853c80 100644 Binary files a/inherit_graph_74.png and b/inherit_graph_74.png differ diff --git a/inherit_graph_75.map b/inherit_graph_75.map index a413168b7..937b6f218 100644 --- a/inherit_graph_75.map +++ b/inherit_graph_75.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_75.md5 b/inherit_graph_75.md5 index 59123d3eb..fb1287194 100644 --- a/inherit_graph_75.md5 +++ b/inherit_graph_75.md5 @@ -1 +1 @@ -d34ce315801d3f9135a27a46d24b6650 \ No newline at end of file +606704121dd7482a1abc71b264625da1 \ No newline at end of file diff --git a/inherit_graph_75.png b/inherit_graph_75.png index 1661557a1..267e3cb3b 100644 Binary files a/inherit_graph_75.png and b/inherit_graph_75.png differ diff --git a/inherit_graph_76.map b/inherit_graph_76.map index 327b76e24..9455cfaf6 100644 --- a/inherit_graph_76.map +++ b/inherit_graph_76.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_76.md5 b/inherit_graph_76.md5 index eed5cf60a..f1b054da2 100644 --- a/inherit_graph_76.md5 +++ b/inherit_graph_76.md5 @@ -1 +1 @@ -eb3473fa898b4198781a94f7fe479d98 \ No newline at end of file +14eafd15d4260bc687c15eb815d71d5c \ No newline at end of file diff --git a/inherit_graph_76.png b/inherit_graph_76.png index e9b1c6928..a3a8cb4ca 100644 Binary files a/inherit_graph_76.png and b/inherit_graph_76.png differ diff --git a/inherit_graph_77.map b/inherit_graph_77.map index ec19cac2c..7ad733edc 100644 --- a/inherit_graph_77.map +++ b/inherit_graph_77.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_77.md5 b/inherit_graph_77.md5 index 086d99a9f..ee4ac9fba 100644 --- a/inherit_graph_77.md5 +++ b/inherit_graph_77.md5 @@ -1 +1 @@ -076fb0c0e11ef1896e2f71b8405f148e \ No newline at end of file +4c0278ec3dcebe512a78fe4101be199f \ No newline at end of file diff --git a/inherit_graph_77.png b/inherit_graph_77.png index 6fd200838..71bbe59d1 100644 Binary files a/inherit_graph_77.png and b/inherit_graph_77.png differ diff --git a/inherit_graph_78.map b/inherit_graph_78.map index 22ad069bf..cd285d1bb 100644 --- a/inherit_graph_78.map +++ b/inherit_graph_78.map @@ -1,3 +1,4 @@ - + + diff --git a/inherit_graph_78.md5 b/inherit_graph_78.md5 index c0c1568c9..2138e0947 100644 --- a/inherit_graph_78.md5 +++ b/inherit_graph_78.md5 @@ -1 +1 @@ -4c42764b88de6d9c061cd8b129182dc4 \ No newline at end of file +3adb7bcaa5841f6b080ac02213ea5b43 \ No newline at end of file diff --git a/inherit_graph_78.png b/inherit_graph_78.png index 198594432..0f3058618 100644 Binary files a/inherit_graph_78.png and b/inherit_graph_78.png differ diff --git a/inherit_graph_79.map b/inherit_graph_79.map index a43071256..1b6a97662 100644 --- a/inherit_graph_79.map +++ b/inherit_graph_79.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_79.md5 b/inherit_graph_79.md5 index af4271873..8a9dcf982 100644 --- a/inherit_graph_79.md5 +++ b/inherit_graph_79.md5 @@ -1 +1 @@ -330b475a39e3bca506a5dc1f4d5964aa \ No newline at end of file +9fbfd2c6558e92ba42ec5e40bd521e3b \ No newline at end of file diff --git a/inherit_graph_79.png b/inherit_graph_79.png index 2fc1ba3dc..0dc6e0248 100644 Binary files a/inherit_graph_79.png and b/inherit_graph_79.png differ diff --git a/inherit_graph_8.map b/inherit_graph_8.map index daa4726f6..fc56f81b5 100644 --- a/inherit_graph_8.map +++ b/inherit_graph_8.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5 index 37b67c8df..5567b1da5 100644 --- a/inherit_graph_8.md5 +++ b/inherit_graph_8.md5 @@ -1 +1 @@ -1a021c4f19552e1718639c198f8c1e46 \ No newline at end of file +248430afa887e20c880be19357ad0ddb \ No newline at end of file diff --git a/inherit_graph_8.png b/inherit_graph_8.png index adf82150c..b86f31bef 100644 Binary files a/inherit_graph_8.png and b/inherit_graph_8.png differ diff --git a/inherit_graph_80.map b/inherit_graph_80.map index 855c45bae..9b0be2fbe 100644 --- a/inherit_graph_80.map +++ b/inherit_graph_80.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_80.md5 b/inherit_graph_80.md5 index f70f2fa33..e9e3d654f 100644 --- a/inherit_graph_80.md5 +++ b/inherit_graph_80.md5 @@ -1 +1 @@ -4027cff6f3712e6a72b6f936e5acb66c \ No newline at end of file +7a310eae57d02dd70cfdbcd2618417c6 \ No newline at end of file diff --git a/inherit_graph_80.png b/inherit_graph_80.png index d98f154d2..e045fb6ab 100644 Binary files a/inherit_graph_80.png and b/inherit_graph_80.png differ diff --git a/inherit_graph_81.map b/inherit_graph_81.map index 56ce580df..e264c393f 100644 --- a/inherit_graph_81.map +++ b/inherit_graph_81.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_81.md5 b/inherit_graph_81.md5 index 298c34047..638592455 100644 --- a/inherit_graph_81.md5 +++ b/inherit_graph_81.md5 @@ -1 +1 @@ -a773c5305e18d45fc936d9050e26c065 \ No newline at end of file +24273696ca20f4e9fae98ff266d64a5d \ No newline at end of file diff --git a/inherit_graph_81.png b/inherit_graph_81.png index bdf133ce8..3b78cba2e 100644 Binary files a/inherit_graph_81.png and b/inherit_graph_81.png differ diff --git a/inherit_graph_82.map b/inherit_graph_82.map index 026c3e0fb..d64d5fd69 100644 --- a/inherit_graph_82.map +++ b/inherit_graph_82.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_82.md5 b/inherit_graph_82.md5 index c8597f68f..7e940a5f0 100644 --- a/inherit_graph_82.md5 +++ b/inherit_graph_82.md5 @@ -1 +1 @@ -91c00f5ff5bc0b3f1beb39a8ec570958 \ No newline at end of file +a2c142cf89b5f294b78887e28860527c \ No newline at end of file diff --git a/inherit_graph_82.png b/inherit_graph_82.png index 8e8e156c8..b37fccc60 100644 Binary files a/inherit_graph_82.png and b/inherit_graph_82.png differ diff --git a/inherit_graph_83.map b/inherit_graph_83.map index 7972806ee..c6e9ad19f 100644 --- a/inherit_graph_83.map +++ b/inherit_graph_83.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_83.md5 b/inherit_graph_83.md5 index 64201662e..f816ee32e 100644 --- a/inherit_graph_83.md5 +++ b/inherit_graph_83.md5 @@ -1 +1 @@ -53eb8bbcd0046d586d08c9b163635384 \ No newline at end of file +562bfa5ed0ef166bf4e7150f04b729ac \ No newline at end of file diff --git a/inherit_graph_83.png b/inherit_graph_83.png index 253853c80..26c00a951 100644 Binary files a/inherit_graph_83.png and b/inherit_graph_83.png differ diff --git a/inherit_graph_84.map b/inherit_graph_84.map index 937b6f218..a768c9944 100644 --- a/inherit_graph_84.map +++ b/inherit_graph_84.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_84.md5 b/inherit_graph_84.md5 index fb1287194..5730b89b1 100644 --- a/inherit_graph_84.md5 +++ b/inherit_graph_84.md5 @@ -1 +1 @@ -606704121dd7482a1abc71b264625da1 \ No newline at end of file +e633c46d6b42df0bff8845a8fa3469e4 \ No newline at end of file diff --git a/inherit_graph_84.png b/inherit_graph_84.png index 267e3cb3b..8fc698c88 100644 Binary files a/inherit_graph_84.png and b/inherit_graph_84.png differ diff --git a/inherit_graph_85.map b/inherit_graph_85.map index 9455cfaf6..1e537ad79 100644 --- a/inherit_graph_85.map +++ b/inherit_graph_85.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_85.md5 b/inherit_graph_85.md5 index f1b054da2..2d4442a3d 100644 --- a/inherit_graph_85.md5 +++ b/inherit_graph_85.md5 @@ -1 +1 @@ -14eafd15d4260bc687c15eb815d71d5c \ No newline at end of file +c0a257d1d0687c7dd3d76e01c0c15373 \ No newline at end of file diff --git a/inherit_graph_85.png b/inherit_graph_85.png index a3a8cb4ca..3de245cd1 100644 Binary files a/inherit_graph_85.png and b/inherit_graph_85.png differ diff --git a/inherit_graph_86.map b/inherit_graph_86.map index 7ad733edc..e0ea58a64 100644 --- a/inherit_graph_86.map +++ b/inherit_graph_86.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_86.md5 b/inherit_graph_86.md5 index ee4ac9fba..3a77b696c 100644 --- a/inherit_graph_86.md5 +++ b/inherit_graph_86.md5 @@ -1 +1 @@ -4c0278ec3dcebe512a78fe4101be199f \ No newline at end of file +cb64bd5dd769de4af5f35bf2037fa465 \ No newline at end of file diff --git a/inherit_graph_86.png b/inherit_graph_86.png index 71bbe59d1..b2ae4bc9d 100644 Binary files a/inherit_graph_86.png and b/inherit_graph_86.png differ diff --git a/inherit_graph_87.map b/inherit_graph_87.map index cd285d1bb..968412cb4 100644 --- a/inherit_graph_87.map +++ b/inherit_graph_87.map @@ -1,4 +1,3 @@ - - + diff --git a/inherit_graph_87.md5 b/inherit_graph_87.md5 index 2138e0947..099e2c7f0 100644 --- a/inherit_graph_87.md5 +++ b/inherit_graph_87.md5 @@ -1 +1 @@ -3adb7bcaa5841f6b080ac02213ea5b43 \ No newline at end of file +4b9e511df85fee92610fb57bfa3fc68a \ No newline at end of file diff --git a/inherit_graph_87.png b/inherit_graph_87.png index 0f3058618..c8a6e0acb 100644 Binary files a/inherit_graph_87.png and b/inherit_graph_87.png differ diff --git a/inherit_graph_88.map b/inherit_graph_88.map index 1b6a97662..198dc951a 100644 --- a/inherit_graph_88.map +++ b/inherit_graph_88.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_88.md5 b/inherit_graph_88.md5 index 8a9dcf982..df450a485 100644 --- a/inherit_graph_88.md5 +++ b/inherit_graph_88.md5 @@ -1 +1 @@ -9fbfd2c6558e92ba42ec5e40bd521e3b \ No newline at end of file +58753df91a45b45b7f532dd750db5711 \ No newline at end of file diff --git a/inherit_graph_88.png b/inherit_graph_88.png index 0dc6e0248..3f0b65877 100644 Binary files a/inherit_graph_88.png and b/inherit_graph_88.png differ diff --git a/inherit_graph_89.map b/inherit_graph_89.map index 9b0be2fbe..887cb017f 100644 --- a/inherit_graph_89.map +++ b/inherit_graph_89.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_89.md5 b/inherit_graph_89.md5 index e9e3d654f..be843110c 100644 --- a/inherit_graph_89.md5 +++ b/inherit_graph_89.md5 @@ -1 +1 @@ -7a310eae57d02dd70cfdbcd2618417c6 \ No newline at end of file +affe8fc5bca695444ac4b82bf8ece2da \ No newline at end of file diff --git a/inherit_graph_89.png b/inherit_graph_89.png index e045fb6ab..af5091854 100644 Binary files a/inherit_graph_89.png and b/inherit_graph_89.png differ diff --git a/inherit_graph_90.map b/inherit_graph_90.map index e264c393f..6bf2607f2 100644 --- a/inherit_graph_90.map +++ b/inherit_graph_90.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_90.md5 b/inherit_graph_90.md5 index 638592455..6a589e934 100644 --- a/inherit_graph_90.md5 +++ b/inherit_graph_90.md5 @@ -1 +1 @@ -24273696ca20f4e9fae98ff266d64a5d \ No newline at end of file +1525e363ea19b2abe0e337bd0fd95ea2 \ No newline at end of file diff --git a/inherit_graph_90.png b/inherit_graph_90.png index 3b78cba2e..10344b7ba 100644 Binary files a/inherit_graph_90.png and b/inherit_graph_90.png differ diff --git a/inherit_graph_91.map b/inherit_graph_91.map index d64d5fd69..ec744124b 100644 --- a/inherit_graph_91.map +++ b/inherit_graph_91.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_91.md5 b/inherit_graph_91.md5 index 7e940a5f0..e0b086cc5 100644 --- a/inherit_graph_91.md5 +++ b/inherit_graph_91.md5 @@ -1 +1 @@ -a2c142cf89b5f294b78887e28860527c \ No newline at end of file +f251b3f709711c6e02a842a4221314ec \ No newline at end of file diff --git a/inherit_graph_91.png b/inherit_graph_91.png index b37fccc60..4edb4caeb 100644 Binary files a/inherit_graph_91.png and b/inherit_graph_91.png differ diff --git a/inherit_graph_92.map b/inherit_graph_92.map index c6e9ad19f..d22985c8e 100644 --- a/inherit_graph_92.map +++ b/inherit_graph_92.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_92.md5 b/inherit_graph_92.md5 index f816ee32e..10a68e4f5 100644 --- a/inherit_graph_92.md5 +++ b/inherit_graph_92.md5 @@ -1 +1 @@ -562bfa5ed0ef166bf4e7150f04b729ac \ No newline at end of file +a5601345bc12e01efc4bc81ed99fe3b3 \ No newline at end of file diff --git a/inherit_graph_92.png b/inherit_graph_92.png index 26c00a951..7b486497b 100644 Binary files a/inherit_graph_92.png and b/inherit_graph_92.png differ diff --git a/inherit_graph_93.map b/inherit_graph_93.map index a768c9944..96e64119e 100644 --- a/inherit_graph_93.map +++ b/inherit_graph_93.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_93.md5 b/inherit_graph_93.md5 index 5730b89b1..b826ee2bf 100644 --- a/inherit_graph_93.md5 +++ b/inherit_graph_93.md5 @@ -1 +1 @@ -e633c46d6b42df0bff8845a8fa3469e4 \ No newline at end of file +4a10849d32b79e5ae12992f7ad2d78b6 \ No newline at end of file diff --git a/inherit_graph_93.png b/inherit_graph_93.png index 8fc698c88..fc908c670 100644 Binary files a/inherit_graph_93.png and b/inherit_graph_93.png differ diff --git a/inherit_graph_94.map b/inherit_graph_94.map index 1e537ad79..e506216e5 100644 --- a/inherit_graph_94.map +++ b/inherit_graph_94.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_94.md5 b/inherit_graph_94.md5 index 2d4442a3d..983a2dc51 100644 --- a/inherit_graph_94.md5 +++ b/inherit_graph_94.md5 @@ -1 +1 @@ -c0a257d1d0687c7dd3d76e01c0c15373 \ No newline at end of file +b3494108ed2ffb867569a6feb069d727 \ No newline at end of file diff --git a/inherit_graph_94.png b/inherit_graph_94.png index 3de245cd1..fe9ccba54 100644 Binary files a/inherit_graph_94.png and b/inherit_graph_94.png differ diff --git a/inherit_graph_95.map b/inherit_graph_95.map index e0ea58a64..c2aa9aa54 100644 --- a/inherit_graph_95.map +++ b/inherit_graph_95.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_95.md5 b/inherit_graph_95.md5 index 3a77b696c..18e19d534 100644 --- a/inherit_graph_95.md5 +++ b/inherit_graph_95.md5 @@ -1 +1 @@ -cb64bd5dd769de4af5f35bf2037fa465 \ No newline at end of file +ea17980bf052b7ab3ab5c3e337202551 \ No newline at end of file diff --git a/inherit_graph_95.png b/inherit_graph_95.png index b2ae4bc9d..d167371d9 100644 Binary files a/inherit_graph_95.png and b/inherit_graph_95.png differ diff --git a/inherit_graph_96.map b/inherit_graph_96.map index 968412cb4..a04dfbcb3 100644 --- a/inherit_graph_96.map +++ b/inherit_graph_96.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_96.md5 b/inherit_graph_96.md5 index 099e2c7f0..b5c6e6a7a 100644 --- a/inherit_graph_96.md5 +++ b/inherit_graph_96.md5 @@ -1 +1 @@ -4b9e511df85fee92610fb57bfa3fc68a \ No newline at end of file +31570aaf79c5edb0cdbdf6cc367c32ab \ No newline at end of file diff --git a/inherit_graph_96.png b/inherit_graph_96.png index c8a6e0acb..4d86c3461 100644 Binary files a/inherit_graph_96.png and b/inherit_graph_96.png differ diff --git a/inherit_graph_97.map b/inherit_graph_97.map index 198dc951a..137e661ad 100644 --- a/inherit_graph_97.map +++ b/inherit_graph_97.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_97.md5 b/inherit_graph_97.md5 index df450a485..2409622ec 100644 --- a/inherit_graph_97.md5 +++ b/inherit_graph_97.md5 @@ -1 +1 @@ -58753df91a45b45b7f532dd750db5711 \ No newline at end of file +44157921abd634a8458d9aa685970ca3 \ No newline at end of file diff --git a/inherit_graph_97.png b/inherit_graph_97.png index 3f0b65877..287f9373d 100644 Binary files a/inherit_graph_97.png and b/inherit_graph_97.png differ diff --git a/inherit_graph_98.map b/inherit_graph_98.map index 887cb017f..325d068de 100644 --- a/inherit_graph_98.map +++ b/inherit_graph_98.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_98.md5 b/inherit_graph_98.md5 index be843110c..99d149fd8 100644 --- a/inherit_graph_98.md5 +++ b/inherit_graph_98.md5 @@ -1 +1 @@ -affe8fc5bca695444ac4b82bf8ece2da \ No newline at end of file +d44ecc48d6fd7aaab5d40af7f7344e55 \ No newline at end of file diff --git a/inherit_graph_98.png b/inherit_graph_98.png index af5091854..42e492930 100644 Binary files a/inherit_graph_98.png and b/inherit_graph_98.png differ diff --git a/inherit_graph_99.map b/inherit_graph_99.map index 6bf2607f2..3e5d873b5 100644 --- a/inherit_graph_99.map +++ b/inherit_graph_99.map @@ -1,3 +1,3 @@ - + diff --git a/inherit_graph_99.md5 b/inherit_graph_99.md5 index 6a589e934..c2626bae3 100644 --- a/inherit_graph_99.md5 +++ b/inherit_graph_99.md5 @@ -1 +1 @@ -1525e363ea19b2abe0e337bd0fd95ea2 \ No newline at end of file +da67fa5ee8728dd561b731c9fb433ee4 \ No newline at end of file diff --git a/inherit_graph_99.png b/inherit_graph_99.png index 10344b7ba..fa24bbabb 100644 Binary files a/inherit_graph_99.png and b/inherit_graph_99.png differ diff --git a/inherits.html b/inherits.html index a42fe37fa..459150fbb 100644 --- a/inherits.html +++ b/inherits.html @@ -3,7 +3,7 @@ - + EnTT: Class Hierarchy @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -70,862 +70,837 @@ $(function() {

    Go to the textual class hierarchy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -933,7 +908,7 @@ $(function() { diff --git a/iterator_8hpp_source.html b/iterator_8hpp_source.html new file mode 100644 index 000000000..4f756eb1d --- /dev/null +++ b/iterator_8hpp_source.html @@ -0,0 +1,217 @@ + + + + + + + +EnTT: src/entt/entity/iterator.hpp Source File + + + + + + + + + +
    +
    +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - +
    - - +
    + +
    - +
    - +
    - +
    - +
    - - +
    + + +
    - - - - +
    + + + + + + + + + + + + + +
    - - - - - -
    - - - - - -
    - - - - - -
    - - - - - -
    - - - - - -
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - +
    + + +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - +
    + +
    - - +
    + + + + + +
    - - +
    + +
    - - +
    + +
    - - +
    + +
    - - +
    + + +
    - - +
    + +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - +
    + + +
    - - +
    + + +
    - - - -
    - - - - -
    - - - -
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - - +
    + + + +
    - - - - - - - - - - +
    + + +
    - - - +
    + + + + + + + + +
    - - - - - - - - +
    + + +
    - - - +
    + + + + + + + + + + + + + +
    - - - - -
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    + + + +
    +
    - +
    +
    - - - -
    - +
    +
    - +
    +
    - +
    +
    - - - - - +
    + + + + +
    - +
    +
    - +
    +
    - - +
    + +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - - +
    + + + +
    - +
    + + + +
    +
    - +
    +
    - - +
    + +
    - +
    + + + +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - +
    + + +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - - - +
    + + +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    - +
    +
    + + + + + +
    +
    EnTT +  3.8.0 +
    +
    + + + + + + + + + +
    +
    + + +
    + +
    + + + +
    +
    +
    iterator.hpp
    +
    +
    +
    1 #ifndef ENTT_ENTITY_ITERATOR_HPP
    +
    2 #define ENTT_ENTITY_ITERATOR_HPP
    +
    3 
    +
    4 
    +
    5 #include <array>
    +
    6 #include <cstddef>
    +
    7 #include <iterator>
    +
    8 #include <tuple>
    +
    9 #include <utility>
    +
    10 #include "../config/config.h"
    +
    11 #include "entity.hpp"
    +
    12 #include "sparse_set.hpp"
    +
    13 
    +
    14 
    +
    15 namespace entt {
    +
    16 
    +
    17 
    + +
    24  template<typename Entity>
    +
    25  [[nodiscard]] static constexpr bool accept(const Entity entity) ENTT_NOEXCEPT {
    +
    26  return entity != tombstone;
    +
    27  }
    +
    32 };
    +
    33 
    +
    34 
    + +
    41  template<typename Entity>
    +
    42  [[nodiscard]] static constexpr bool accept(const Entity) ENTT_NOEXCEPT {
    +
    43  return true;
    +
    44  }
    +
    49 };
    +
    50 
    +
    51 
    +
    52 template<typename Policy, typename It, std::size_t AllOf, std::size_t NoneOf>
    +
    53 class view_iterator final {
    + +
    55 
    +
    56  [[nodiscard]] bool valid() const {
    +
    57  const auto entt = *it;
    +
    58  return Policy::accept(entt)
    +
    59  && std::apply([entt](const auto *... curr) { return (curr->contains(entt) && ...); }, pools)
    +
    60  && std::apply([entt](const auto *... curr) { return (!curr->contains(entt) && ...); }, filter);
    +
    61  }
    +
    62 
    +
    63 public:
    +
    64  using difference_type = typename std::iterator_traits<It>::difference_type;
    +
    65  using value_type = typename std::iterator_traits<It>::value_type;
    +
    66  using pointer = typename std::iterator_traits<It>::pointer;
    +
    67  using reference = typename std::iterator_traits<It>::reference;
    +
    68  using iterator_category = std::bidirectional_iterator_tag;
    +
    69 
    +
    70  view_iterator() ENTT_NOEXCEPT
    +
    71  : first{},
    +
    72  last{},
    +
    73  it{},
    +
    74  pools{},
    +
    75  filter{}
    +
    76  {}
    +
    77 
    +
    78  view_iterator(It from, It to, It curr, std::array<const basic_common_type *, AllOf> all_of, std::array<const basic_common_type *, NoneOf> none_of) ENTT_NOEXCEPT
    +
    79  : first{std::move(from)},
    +
    80  last{std::move(to)},
    +
    81  it{std::move(curr)},
    +
    82  pools{all_of},
    +
    83  filter{none_of}
    +
    84  {
    +
    85  if(it != last && !valid()) {
    +
    86  ++(*this);
    +
    87  }
    +
    88  }
    +
    89 
    +
    90  view_iterator & operator++() ENTT_NOEXCEPT {
    +
    91  while(++it != last && !valid());
    +
    92  return *this;
    +
    93  }
    +
    94 
    +
    95  view_iterator operator++(int) ENTT_NOEXCEPT {
    +
    96  view_iterator orig = *this;
    +
    97  return ++(*this), orig;
    +
    98  }
    +
    99 
    +
    100  view_iterator & operator--() ENTT_NOEXCEPT {
    +
    101  while(--it != first && !valid());
    +
    102  return *this;
    +
    103  }
    +
    104 
    +
    105  view_iterator operator--(int) ENTT_NOEXCEPT {
    +
    106  view_iterator orig = *this;
    +
    107  return operator--(), orig;
    +
    108  }
    +
    109 
    +
    110  [[nodiscard]] bool operator==(const view_iterator &other) const ENTT_NOEXCEPT {
    +
    111  return other.it == it;
    +
    112  }
    +
    113 
    +
    114  [[nodiscard]] bool operator!=(const view_iterator &other) const ENTT_NOEXCEPT {
    +
    115  return !(*this == other);
    +
    116  }
    +
    117 
    +
    118  [[nodiscard]] pointer operator->() const {
    +
    119  return &*it;
    +
    120  }
    +
    121 
    +
    122  [[nodiscard]] reference operator*() const {
    +
    123  return *operator->();
    +
    124  }
    +
    125 
    +
    126 private:
    +
    127  It first;
    +
    128  It last;
    +
    129  It it;
    +
    130  std::array<const basic_common_type *, AllOf> pools;
    +
    131  std::array<const basic_common_type *, NoneOf> filter;
    +
    132 };
    +
    133 
    +
    134 
    +
    135 template<typename It>
    +
    136 class view_iterator<packed_storage_policy, It, 0u, 0u> final: public It {
    +
    137 public:
    +
    138  using It::It;
    +
    139 
    +
    140  view_iterator(It it)
    +
    141  : It{std::move(it)}
    +
    142  {}
    +
    143 };
    +
    144 
    +
    145 
    +
    146 }
    +
    147 
    +
    148 
    +
    149 #endif
    +
    Basic sparse set implementation.
    Definition: sparse_set.hpp:53
    + +
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entity
    Default entity identifier.
    Definition: fwd.hpp:61
    +
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition: entity.hpp:345
    +
    Packed storage policy, aimed at faster linear iteration.
    Definition: iterator.hpp:36
    +
    Stable storage policy, aimed at pointer stability.
    Definition: iterator.hpp:19
    +
    + + + + diff --git a/loader_8hpp_source.html b/loader_8hpp_source.html index 2710d6997..2cf415bd1 100644 --- a/loader_8hpp_source.html +++ b/loader_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/resource/loader.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -70,7 +70,7 @@ $(function() {
    loader.hpp
    -
    1 #ifndef ENTT_RESOURCE_LOADER_HPP
    +
    1 #ifndef ENTT_RESOURCE_LOADER_HPP
    2 #define ENTT_RESOURCE_LOADER_HPP
    3 
    4 
    @@ -83,27 +83,28 @@ $(function() {
    11 
    44 template<typename Loader, typename Resource>
    -
    47  friend struct resource_cache<Resource>;
    -
    48 
    -
    55  template<typename... Args>
    -
    56  [[nodiscard]] resource_handle<Resource> get(Args &&... args) const {
    -
    57  return static_cast<const Loader *>(this)->load(std::forward<Args>(args)...);
    -
    58  }
    -
    59 };
    -
    60 
    +
    47  template<typename Other>
    +
    48  friend struct resource_cache;
    +
    49 
    +
    56  template<typename... Args>
    +
    57  [[nodiscard]] resource_handle<Resource> get(Args &&... args) const {
    +
    58  return static_cast<const Loader *>(this)->load(std::forward<Args>(args)...);
    +
    59  }
    +
    60 };
    61 
    -
    62 }
    -
    63 
    +
    62 
    +
    63 }
    64 
    -
    65 #endif
    -
    +
    65 
    +
    66 #endif
    +
    Shared resource handle.
    Definition: handle.hpp:28
    Base class for resource loaders.
    Definition: loader.hpp:45
    -
    Simple cache for resources of a given type.
    Definition: cache.hpp:29
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    Shared resource handle.
    Definition: handle.hpp:27
    +
    Simple cache for resources of a given type.
    Definition: cache.hpp:29
    +
    diff --git a/locator_8hpp_source.html b/locator_8hpp_source.html index 0cf007c1d..f9a9fa3d4 100644 --- a/locator_8hpp_source.html +++ b/locator_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/locator/locator.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,15 +89,15 @@ $(function() {
    30  service_locator() = delete;
    32  ~service_locator() = delete;
    33 
    -
    38  [[nodiscard]] static bool empty() ENTT_NOEXCEPT {
    +
    38  [[nodiscard]] static bool empty() ENTT_NOEXCEPT {
    39  return !static_cast<bool>(service);
    40  }
    41 
    -
    52  [[nodiscard]] static std::weak_ptr<Service> get() ENTT_NOEXCEPT {
    +
    52  [[nodiscard]] static std::weak_ptr<Service> get() ENTT_NOEXCEPT {
    53  return service;
    54  }
    55 
    -
    70  [[nodiscard]] static Service & ref() ENTT_NOEXCEPT {
    +
    70  [[nodiscard]] static Service & ref() ENTT_NOEXCEPT {
    71  return *service;
    72  }
    73 
    @@ -107,7 +107,7 @@ $(function() {
    83  }
    84 
    89  static void set(std::shared_ptr<Service> ptr) {
    -
    90  ENTT_ASSERT(static_cast<bool>(ptr));
    +
    90  ENTT_ASSERT(static_cast<bool>(ptr), "Null service not allowed");
    91  service = std::move(ptr);
    92  }
    93 
    @@ -124,21 +124,21 @@ $(function() {
    109 
    110 
    111 #endif
    - -
    entt::service_locator
    Service locator, nothing more.
    Definition: locator.hpp:25
    -
    entt::service_locator::service_type
    Service service_type
    Type of service offered.
    Definition: locator.hpp:27
    -
    entt::service_locator::reset
    static void reset()
    Resets a service.
    Definition: locator.hpp:99
    -
    entt::service_locator::~service_locator
    ~service_locator()=delete
    Default destructor, deleted on purpose.
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::service_locator::empty
    static bool empty() noexcept
    Tests if a valid service implementation is set.
    Definition: locator.hpp:38
    -
    entt::service_locator::get
    static std::weak_ptr< Service > get() noexcept
    Returns a weak pointer to a service implementation, if any.
    Definition: locator.hpp:52
    -
    entt::service_locator::service_locator
    service_locator()=delete
    Default constructor, deleted on purpose.
    -
    entt::service_locator::set
    static void set(std::shared_ptr< Service > ptr)
    Sets or replaces a service.
    Definition: locator.hpp:89
    -
    entt::service_locator::ref
    static Service & ref() noexcept
    Returns a weak reference to a service implementation, if any.
    Definition: locator.hpp:70
    +
    entt::service_locator
    Service locator, nothing more.
    Definition: locator.hpp:25
    entt::service_locator::set
    static void set(Args &&... args)
    Sets or replaces a service.
    Definition: locator.hpp:81
    +
    entt::service_locator::service_locator
    service_locator()=delete
    Default constructor, deleted on purpose.
    +
    entt::service_locator::~service_locator
    ~service_locator()=delete
    Default destructor, deleted on purpose.
    +
    entt::service_locator::reset
    static void reset()
    Resets a service.
    Definition: locator.hpp:99
    +
    entt::service_locator::ref
    static Service & ref()
    Returns a weak reference to a service implementation, if any.
    Definition: locator.hpp:70
    +
    entt::service_locator::set
    static void set(std::shared_ptr< Service > ptr)
    Sets or replaces a service.
    Definition: locator.hpp:89
    +
    entt::service_locator::get
    static std::weak_ptr< Service > get()
    Returns a weak pointer to a service implementation, if any.
    Definition: locator.hpp:52
    +
    entt::service_locator::empty
    static bool empty()
    Tests if a valid service implementation is set.
    Definition: locator.hpp:38
    +
    entt::service_locator::service_type
    Service service_type
    Type of service offered.
    Definition: locator.hpp:27
    + diff --git a/md_docs_md_config.html b/md_docs_md_config.html index bd29e3d45..d74c2dd7b 100644 --- a/md_docs_md_config.html +++ b/md_docs_md_config.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: configuration @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,9 +75,9 @@ Definitions

    All options are intended as parameters to the compiler (or user-defined macros within the compilation units, if preferred).
    Each parameter can result in internal library definitions. It's not recommended to try to also modify these definitions, since there is no guarantee that they will remain stable over time unlike the options below.

    -ENTT_NOEXCEPT

    -

    The purpose of this parameter is to suppress the use of noexcept by this library.
    - To do this, simply define the variable without assigning any value to it.

    +ENTT_NOEXCEPTION +

    This parameter can be used to switch off exception handling in EnTT.
    + To do this, simply define the variable without assigning any value to it. This is roughly equivalent to setting the compiler flag -ff-noexceptions.

    ENTT_USE_ATOMIC

    In general, EnTT doesn't offer primitives to support multi-threading. Many of the features can be split over multiple threads without any explicit control and the user is the only one who knows if and when a synchronization point is required.
    @@ -87,22 +87,26 @@ ENTT_ID_TYPE

    entt::id_type is directly controlled by this definition and widely used within the library.
    By default, its type is std::uint32_t. However, users can define a different default type if necessary.

    -ENTT_PAGE_SIZE

    -

    As is known, the ECS module of EnTT is based on sparse sets. What is less known perhaps is that these are paged to reduce memory consumption.
    +ENTT_SPARSE_PAGE +

    It's known that the ECS module of EnTT is based on sparse sets. What is less known perhaps is that the sparse arrays are paged to reduce memory usage.
    Default size of pages (that is, the number of elements they contain) is 4096 but users can adjust it if appropriate. In all case, the chosen value must be a power of 2.

    +ENTT_PACKED_PAGE

    +

    Similar to sparse arrays, packed arrays of components are paginated as well. In However, int this case the aim isn't to reduce memory usage but to have pointer stability upon component creation.
    + Default size of pages (that is, the number of elements they contain) is 1024 but users can adjust it if appropriate. In all case, the chosen value must be a power of 2.

    +

    ENTT_ASSERT

    For performance reasons, EnTT doesn't use exceptions or any other control structures. In fact, it offers many features that result in undefined behavior if not used correctly.
    To get around this, the library relies on a lot of asserts for the purpose of detecting errors in debug builds. By default, it uses assert internally, but users are allowed to overwrite its behavior by setting this variable.

    -

    +

    ENTT_DISABLE_ASSERT

    Assertions may in turn affect performance to an extent when enabled. Whether ENTT_ASSERT is redefined or not, all asserts can be disabled at once by means of this definition.
    Note that ENTT_DISABLE_ASSERT takes precedence over the redefinition of ENTT_ASSERT and is therefore meant to disable all controls no matter what.

    -

    +

    ENTT_NO_ETO

    In order to reduce memory consumption and increase performance, empty types are never stored by the ECS module of EnTT.
    Use this variable to treat these types like all others and therefore to create a dedicated storage for them.

    -

    +

    ENTT_STANDARD_CPP

    EnTT mixes non-standard language features with others that are perfectly compliant to offer some of its functionalities.
    This definition will prevent the library from using non-standard techniques, that is, functionalities that aren't fully compliant with the standard C++.
    @@ -111,7 +115,7 @@ ENTT_STANDARD_CPP

    diff --git a/md_docs_md_core.html b/md_docs_md_core.html index 886e3875a..863e4b4b1 100644 --- a/md_docs_md_core.html +++ b/md_docs_md_core.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: core functionalities @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,15 +66,15 @@ $(function() {
    Crash Course: core functionalities
    -

    +

    Introduction

    EnTT comes with a bunch of core functionalities mostly used by the other parts of the library itself.
    Hardly users will include these features in their code, but it's worth describing what EnTT offers so as not to reinvent the wheel in case of need.

    -

    +

    Unique sequential identifiers

    Sometimes it's useful to be able to give unique, sequential numeric identifiers to types either at compile-time or runtime.
    There are plenty of different solutions for this out there and I could have used one of them. However, I decided to spend my time to define a couple of tools that fully embraces what the modern C++ has to offer.

    -

    +

    Compile-time generator

    To generate sequential numeric identifiers at compile-time, EnTT offers the identifier class template:

    // defines the identifiers for the given types
    @@ -92,6 +92,7 @@ Compile-time generator

    default:
    // ...
    }
    +
    Types identifiers.
    Definition: ident.hpp:44

    This is all what this class template has to offer: a type inline variable that contains a numeric identifier for the given type. It can be used in any context where constant expressions are required.

    As long as the list remains unchanged, identifiers are also guaranteed to be stable across different runs. In case they have been used in a production environment and a type has to be removed, one can just use a placeholder to left the other identifiers unchanged:

    template<typename> struct ignore_type {};
    @@ -102,7 +103,7 @@ Compile-time generator
    another_type_still_valid
    >;

    Perhaps a bit ugly to see in a codebase but it gets the job done at least.

    -

    +

    Runtime generator

    To generate sequential numeric identifiers at runtime, EnTT offers the family class template:

    // defines a custom generator
    @@ -112,10 +113,11 @@ Runtime generator
    const auto a_type_id = id::type<a_type>;
    const auto another_type_id = id::type<another_type>;
    +
    Dynamic identifier generator.
    Definition: family.hpp:20

    This is all what a family has to offer: a type inline variable that contains a numeric identifier for the given type.
    The generator is customizable, so as to get different sequences for different purposes if needed.

    Please, note that identifiers aren't guaranteed to be stable across different runs. Indeed it mostly depends on the flow of execution.

    -

    +

    Hashed strings

    A hashed string is a zero overhead unique identifier. Users can use human-readable identifiers in the codebase while using their numeric counterparts at runtime, thus without affecting performance.
    The class has an implicit constexpr constructor that chews a bunch of characters. Once created, all what one can do with it is getting back the original string through the data member function or converting the instance into a number.
    @@ -126,6 +128,8 @@ Hashed strings

    }
    auto resource = load(entt::hashed_string{"gui/background"});
    +
    Zero overhead unique identifier.
    +
    id_type hash_type
    Unsigned integer type.

    There is also a user defined literal dedicated to hashed strings to make them more user-friendly:

    using namespace entt::literals;
    constexpr auto str = "text"_hs;
    @@ -137,20 +141,21 @@ Hashed strings
    entt::hashed_string str{orig.c_str()};
    // ... or compute only the unique identifier
    -
    const auto hash = entt::hashed_string::value(orig.c_str());
    +
    const auto hash = entt::hashed_string::value(orig.c_str());
    +
    constexpr hash_type value() const
    Returns the numeric representation of a hashed string.

    This possibility shouldn't be exploited in tight loops, since the computation takes place at runtime and no longer at compile-time and could therefore impact performance to some degrees.

    -

    +

    Wide characters

    The hashed string has a design that is close to that of an std::basic_string. It means that hashed_string is nothing more than an alias for basic_hashed_string<char>. For those who want to use the C++ type for wide character representation, there exists also the alias hashed_wstring for basic_hashed_string<wchar_t>.
    In this case, the user defined literal to use to create hashed strings on the fly is _hws:

    constexpr auto str = L"text"_hws;

    Note that the hash type of the hashed_wstring is the same of its counterpart.

    -

    +

    Conflicts

    The hashed string class uses internally FNV-1a to compute the numeric counterpart of a string. Because of the pigeonhole principle, conflicts are possible. This is a fact.
    There is no silver bullet to solve the problem of conflicts when dealing with hashing functions. In this case, the best solution seemed to be to give up. That's all.
    After all, human-readable unique identifiers aren't something strictly defined and over which users have not the control. Choosing a slightly different identifier is probably the best solution to make the conflict disappear in this case.

    -

    +

    Monostate

    The monostate pattern is often presented as an alternative to a singleton based configuration system. This is exactly its purpose in EnTT. Moreover, this implementation is thread safe by design (hopefully).
    Keys are represented by hashed strings, values are basic types like ints or bools. Values of different types can be associated to each key, even more than one at a time. Because of this, users must pay attention to use the same type both during an assignment and when they try to read back their data. Otherwise, they will probably incur in unexpected results.

    @@ -162,7 +167,8 @@ Monostate
    const bool b = entt::monostate<"mykey"_hs>{};
    const int i = entt::monostate<entt::hashed_string{"mykey"}>{};
    -

    +
    Minimal implementation of the monostate pattern.
    Definition: monostate.hpp:24
    +

    Any as in any type

    EnTT comes with its own any type. It may seem redundant considering that C++17 introduced std::any, but it is not (hopefully).
    In fact, the type returned by an std::any is a const reference to an std::type_info, an implementation defined class that's not something everyone wants to see in a software. Furthermore, there is no way to connect it with the type system of the library and therefore with its integrated RTTI support.
    @@ -174,11 +180,16 @@ Any as in any type

    entt::any empty{};
    // a container for an int
    -
    entt::any any{0};
    +
    entt::any any{0};
    // in place construction
    -
    entt::any in_place{std::in_place_type<int>, 42};
    -

    The any class takes the burden of destroying the contained element when required, regardless of the storage strategy used for the specific object.
    +

    entt::any in_place{std::in_place_type<int>, 42};
    +
    entt::basic_any<>
    +
    entt::any
    basic_any<> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    +
    entt::deletion_policy::in_place
    @ in_place
    In-place deletion policy.
    +

    Alternatively, the make_any function serves the same purpose but requires to always be explicit about the type:

    +
    entt::any any = entt::make_any<int>(42);
    +

    In both cases, the any class takes the burden of destroying the contained element when required, regardless of the storage strategy used for the specific object.
    Furthermore, an instance of any is not tied to an actual type. Therefore, the wrapper will be reconfigured by assigning it an object of a different type than the one contained, so as to be able to handle the new instance.
    When in doubt about the type of object contained, the type member function of any returns an instance of type_info associated with its element, or an invalid type_info object if the container is empty. The type is also used internally when comparing two any objects:

    if(any == empty) { /* ... */ }
    @@ -187,24 +198,25 @@ Any as in any type

    A particularly interesting feature of this class is that it can also be used as an opaque container for const and non-const references:

    int value = 42;
    -
    // reference construction
    -
    entt::any any{std::ref(value)};
    -
    entt::any cany{std::cref(value)};
    +
    entt::any any{std::in_place_type<int &>(value)};
    +
    entt::any cany = entt::make_any<const int &>(value);
    +
    -
    // alias construction
    -
    int value = 42;
    -
    entt::any in_place{std::in_place_type<int &>, &value};
    -

    In other words, whenever any intercepts a reference_wrapper or is explicitly told that users want to construct an alias, it acts as a pointer to the original instance rather than making a copy of it or moving it internally. The contained object is never destroyed and users must ensure that its lifetime exceeds that of the container.
    +

    any.emplace<const int &>(value);
    +
    void emplace(Args &&... args)
    Replaces the contained object by creating a new instance directly.
    Definition: any.hpp:301
    +
    basic_any< Len, Align > forward_as_any(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition: any.hpp:448
    +

    In other words, whenever any is explicitly told to construct an alias, it acts as a pointer to the original instance rather than making a copy of it or moving it internally. The contained object is never destroyed and users must ensure that its lifetime exceeds that of the container.
    Similarly, it's possible to create non-owning copies of any from an existing object:

    // aliasing constructor
    -
    entt::any ref = other.as_ref();
    +
    entt::any ref = other.as_ref();
    +
    basic_any as_ref()
    Aliasing constructor.
    Definition: any.hpp:335

    In this case, it doesn't matter if the original container actually holds an object or acts already as a reference for unmanaged elements, the new instance thus created won't create copies and will only serve as a reference for the original item.
    This means that, starting from the example above, both ref andother will point to the same object, whether it's initially contained in other or already an unmanaged element.

    As a side note, it's worth mentioning that, while everything works transparently when it comes to non-const references, there are some exceptions when it comes to const references.
    In particular, the data member function invoked on a non-const instance of any that wraps a const reference will return a null pointer in all cases.

    To cast an instance of any to a type, the library offers a set of any_cast functions in all respects similar to their most famous counterparts.
    The only difference is that, in the case of EnTT, these won't raise exceptions but will only trigger an assert in debug mode, otherwise resulting in undefined behavior in case of misuse in release mode.

    -

    +

    Small buffer optimization

    The any class uses a technique called small buffer optimization to reduce the number of allocations where possible.
    The default reserved size for an instance of any is sizeof(double[2]). However, this is also configurable if needed. In fact, any is defined as an alias for basic_any<Len>, where Len is the size above.
    @@ -213,18 +225,18 @@ Small buffer optimization

    This feature, in addition to allowing the choice of a size that best suits the needs of an application, also offers the possibility of forcing dynamic creation of objects during construction.
    In other terms, if the size is 0, any avoids the use of any optimization and always dynamically allocates objects (except for aliasing cases).

    Note that the size of the internal storage as well as the alignment requirements are directly part of the type and therefore contribute to define different types that won't be able to interoperate with each other.

    -

    +

    Alignment requirement

    The alignment requirement is optional and by default the most stringent (the largest) for any object whose size is at most equal to the one provided.
    The basic_any class template inspects the alignment requirements in each case, even when not provided and may decide not to use the small buffer optimization in order to meet them.

    The alignment requirement is provided as an optional second parameter following the desired size for the internal storage:

    using my_any = entt::basic_any<sizeof(double[4]), alignof(double[4])>;

    Note that the alignment requirements as well as the size of the internal storage are directly part of the type and therefore contribute to define different types that won't be able to interoperate with each other.

    -

    +

    Type support

    EnTT provides some basic information about types of all kinds.
    It also offers additional features that are not yet available in the standard library or that will never be.

    -

    +

    Type info

    The type_info class isn't a drop-in replacement for std::type_info but can provide similar information which are not implementation defined and don't require to enable RTTI.
    Therefore, they can sometimes be even more reliable than those obtained otherwise.

    @@ -236,17 +248,20 @@ Type info
    auto index = entt::type_id<a_type>().seq();

    This is also an alias for the following:

    -
    auto index = entt::type_seq<a_type>::value();
    +
    +
    static id_type value()
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96

    The returned value isn't guaranteed to be stable across different runs. However, it can be very useful as index in associative and unordered associative containers or for positional accesses in a vector or an array.

    So as not to conflict with the other tools available, the family class isn't used to generate these indexes. Therefore, the numeric identifiers returned by the two tools may differ.
    On the other hand, this leaves users with full powers over the family class and therefore the generation of custom runtime sequences of indices for their own purposes, if necessary.

    An external generator can also be used if needed. In fact, type_seq can be specialized by type and is also sfinae-friendly in order to allow more refined specializations such as:

    template<typename Type>
    struct entt::type_seq<Type, std::void_d<decltype(Type::index())>> {
    -
    static entt::id_type value() ENTT_NOEXCEPT {
    +
    static entt::id_type value() ENTT_NOEXCEPT {
    return Type::index();
    }
    };
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    Type sequential identifier.
    Definition: type_info.hpp:91

    Note that indexes must still be generated sequentially in this case.
    The tool is widely used within EnTT. Generating indices not sequentially would break an assumption and would likely lead to undesired behaviors.

    auto hash = entt::type_id<a_type>().hash();

    This is also an alias for the following:

    -
    +
    +
    static constexpr id_type value()
    Returns the numeric representation of a given type.
    Definition: type_info.hpp:120

    In general, the value function exposed by type_hash is also constexpr but this isn't guaranteed for all compilers and platforms (although it's valid with the most well-known and popular ones).
    The hash function offered by the type info object isn't constexpr in any case instead.

    This function can use non-standard features of the language for its own purposes. This makes it possible to provide compile-time identifiers that remain stable across different runs.
    @@ -265,7 +281,8 @@ Type info

    auto name = entt::type_id<my_type>().name();

    This is also an alias for the following:

    -
    +
    +
    static constexpr std::string_view value()
    Returns the name of a given type.
    Definition: type_info.hpp:140

    The name associated with a type is extracted from some information generally made available by the compiler in use. Therefore, it may differ depending on the compiler and may be empty in the event that this information isn't available.
    For example, given the following class:

    struct my_type { /* ... */ };
    @@ -273,7 +290,7 @@ Type info Most of the time the name is also retrieved at compile-time and is therefore always returned through an std::string_view. Users can easily access it and modify it as needed, for example by removing the word struct to standardize the result. EnTT won't do this for obvious reasons, since it requires copying and creating a new string potentially at runtime.

    This function can use non-standard features of the language for its own purposes. Users can prevent the library from using non-standard features by means of the ENTT_STANDARD_CPP definition. In this case, the name will be empty by default.

    As for type_seq, also type_name is a sfinae-friendly class that can be specialized in order to customize its behavior globally or on a per-type or per-traits basis.

    -

    +

    Almost unique identifiers

    Since the default non-standard, compile-time implementation of type_hash makes use of hashed strings, it may happen that two types are assigned the same hash value.
    In fact, although this is quite rare, it's not entirely excluded.

    @@ -286,50 +303,57 @@ Almost unique identifiers

    These are just some examples of possible approaches to the problem but there are many others. As already mentioned above, since users have full control over their types, this problem is in any case easy to solve and should not worry too much.
    In all likelihood, it will never happen to run into a conflict anyway.

    -

    +

    Type traits

    A handful of utilities and traits not present in the standard template library but which can be useful in everyday life.
    This list is not exhaustive and contains only some of the most useful classes. Refer to the inline documentation for more information on the features offered by this module.

    -

    +

    Size of

    The standard operator sizeof complains when users provide it for example with function or incomplete types. On the other hand, it's guaranteed that its result is always nonzero, even if applied to an empty class type.
    This small class combines the two and offers an alternative to sizeof that works under all circumstances, returning zero if the type isn't supported:

    const auto size = entt::size_of_v<void>;
    -

    +

    Is applicable

    The standard library offers the great std::is_invocable trait in several forms. This takes a function type and a series of arguments and returns true if the condition is satisfied.
    Moreover, users are also provided with std::apply, a tool for combining invocable elements and tuples of arguments.

    It would therefore be a good idea to have a variant of std::is_invocable that also accepts its arguments in the form of a tuple-like type, so as to complete the offer:

    +
    Same as std::is_invocable, but with tuples.

    This trait is built on top of std::is_invocable and does nothing but unpack a tuple-like type and simplify the code at the call site.

    -

    +

    Constness as

    An utility to easily transfer the constness of a type to another type:

    // type is const dst_type because of the constness of src_type
    +
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.

    The trait is subject to the rules of the language. Therefore, for example, transferring constness between references won't give the desired effect.

    -

    +

    Member class type

    The auto template parameter introduced with C++17 made it possible to simplify many class templates and template functions but also made the class type opaque when members are passed as template arguments.
    The purpose of this utility is to extract the class type in a few lines of code:

    template<typename Member>
    -

    +
    typename member_class< Member >::type member_class_t
    Helper type.
    +

    Integral constant

    Since std::integral_constant may be annoying because of its form that requires to specify both a type and a value of that type, there is a more user-friendly shortcut for the creation of integral constants.
    This shortcut is the alias template entt::integral_constant:

    constexpr auto constant = entt::integral_constant<42>;
    +
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.

    Among the other uses, when combined with a hashed string it helps to define tags as human-readable names where actual types would be required otherwise:

    constexpr auto enemy_tag = entt::integral_constant<"enemy"_hs>;
    registry.emplace<enemy_tag>(entity);
    -

    +
    entity
    Default entity identifier.
    Definition: fwd.hpp:61
    +
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:77
    +

    Tag

    Since id_type is very important and widely used in EnTT, there is a more user-friendly shortcut for the creation of integral constants based on it.
    This shortcut is the alias template entt::tag.

    If used in combination with hashed strings, it helps to use human-readable names where types would be required otherwise. As an example:

    registry.emplace<entt::tag<"enemy"_hs>>(entity);
    +
    integral_constant< Value > tag
    Alias template to facilitate the creation of named values.

    However, this isn't the only permitted use. Literally any value convertible to id_type is a good candidate, such as the named constants of an unscoped enum.

    -

    +

    Type list and value list

    There is no respectable library where the much desired type list can be missing.
    EnTT is no exception and provides (making extensive use of it internally) the type_list type, in addition to its value_list counterpart dedicated to non-type template parameters.

    @@ -343,12 +367,12 @@ Type list and value list

    I'm also pretty sure that more and more utilities will be added over time as needs become apparent.
    Many of these functionalities also exist in their version dedicated to value lists. We therefore have value_list_element[_v] as well as value_list_cat[_t]and so on.

    -

    +

    Utilities

    It's not possible to escape the temptation to add utilities of some kind to a library. In fact, EnTT also provides a handful of tools to simplify the life of developers:

    struct clazz {
    @@ -371,6 +395,7 @@ Utilities
    func(42);
    func('c');
    +
    Helper type for visitors.
    Definition: utility.hpp:53

    Rather useful when doing metaprogramming and having to pass to a function a callable object that supports multiple types at once.

    Maybe convoluted at a first glance but certainly effective. Unfortunately, the language doesn't make it possible to do much better.

    This is a rundown of the (actually few) utilities made available by EnTT. The list will probably grow over time but the size of each will remain rather small, as has been the case so far.

    -
    entt::registry
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:76
    -
    entt::type_seq::value
    static id_type value() noexcept
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    -
    entt::basic_any::as_ref
    basic_any as_ref() noexcept
    Aliasing constructor.
    Definition: any.hpp:320
    -
    entt::type_seq
    Type sequential identifier.
    Definition: type_info.hpp:91
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::integral_constant
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.
    Definition: type_traits.hpp:111
    -
    entt::monostate
    Minimal implementation of the monostate pattern.
    Definition: monostate.hpp:24
    -
    entt::basic_hashed_string
    Zero overhead unique identifier.
    Definition: hashed_string.hpp:64
    -
    entt::y_combinator
    Basic implementation of a y-combinator.
    Definition: utility.hpp:71
    -
    entt::type_hash::value
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    Definition: type_info.hpp:120
    -
    entt::tag
    integral_constant< Value > tag
    Alias template to facilitate the creation of named values.
    Definition: type_traits.hpp:119
    -
    entt::basic_hashed_string::value
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    Definition: hashed_string.hpp:176
    -
    entt::identifier
    Types identifiers.
    Definition: ident.hpp:44
    -
    entt::overloaded
    Helper type for visitors.
    Definition: utility.hpp:53
    -
    entt::family
    Dynamic identifier generator.
    Definition: family.hpp:20
    -
    entt::type_name::value
    static constexpr std::string_view value() noexcept
    Returns the name of a given type.
    Definition: type_info.hpp:140
    -
    entt::any
    basic_any< sizeof(double[2])> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    -
    entt::basic_hashed_string::hash_type
    id_type hash_type
    Unsigned integer type.
    Definition: hashed_string.hpp:88
    -
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:60
    -
    entt::is_applicable
    Same as std::is_invocable, but with tuples.
    Definition: type_traits.hpp:484
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    -
    entt::basic_any< sizeof(double[2])>
    -
    entt::member_class_t
    typename member_class< Member >::type member_class_t
    Helper type.
    Definition: type_traits.hpp:663
    diff --git a/md_docs_md_entity.html b/md_docs_md_entity.html index d7f609566..472b7422a 100644 --- a/md_docs_md_entity.html +++ b/md_docs_md_entity.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: entity-component system @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,37 +66,41 @@ $(function() {
    Crash Course: entity-component system
    -

    +

    Introduction

    EnTT is a header-only, tiny and easy to use entity-component system (and much more) written in modern C++.
    The entity-component-system (also known as ECS) is an architectural pattern used mostly in game development.

    -

    +

    Design decisions

    -

    -A bitset-free entity-component system

    +

    +Type-less and bitset-free

    EnTT offers a bitset-free entity-component system that doesn't require users to specify the set of components neither at compile-time nor at runtime.
    This is why users can instantiate the core class simply like:

    +
    Fast and reliable entity-component system.
    Definition: registry.hpp:45
    +
    basic_registry< entity > registry
    Alias declaration for the most common use case.
    Definition: fwd.hpp:77

    In place of its more annoying and error-prone counterpart:

    entt::registry<comp_0, comp_1, ..., comp_n> registry;

    Furthermore, it isn't necessary to announce the existence of a component type. When the time comes, just use it and that's all.

    -

    +

    +Build your own

    +

    EnTT is designed as a container that can be used at any time just as a vector or any other tool would be used. It doesn't attempt in any way to take over on the user code base, nor to control its main loop or process scheduling.
    + Unlike other more or less known models, it makes use of independent pools. This has some advantages and disadvantages. The main purpose is to provide a fully customizable tool, where users have the freedom to define pools and opaque proxies for types with specific requirements.

    +

    The library provides a default implementation for many things and a mixin model that allows users to completely replace or even just enrich the pool dedicated to one or more components.
    + The built-in signal support is an example of that: defined as a mixin, it's easily disabled if not needed. Similarly, poly storage is another example of how everything is customizable down to the smallest detail.

    +

    Pay per use

    EnTT is entirely designed around the principle that users have to pay only for what they want.

    When it comes to using an entity-component system, the tradeoff is usually between performance and memory usage. The faster it is, the more memory it uses. Even worse, some approaches tend to heavily affect other functionalities like the construction and destruction of components to favor iterations, even when it isn't strictly required. In fact, slightly worse performance along non-critical paths are the right price to pay to reduce memory usage and have overall better perfomance sometimes and I've always wondered why this kind of tools do not leave me the choice.
    EnTT follows a completely different approach. It gets the best out from the basic data structures and gives users the possibility to pay more for higher performance where needed.

    So far, this choice has proven to be a good one and I really hope it can be for many others besides me.

    -

    +

    All or nothing

    -

    EnTT is such that at every moment a pair (T *, size) is available to directly access all the instances of a given component type T.
    - This was a guideline and a design decision that influenced many choices, for better and for worse. I cannot say whether it will be useful or not to the reader, but it's worth to mention it since it's one of the corner stones of this library.

    +

    EnTT is such that a T** pointer (or whatever a custom pool returns) is always available to directly access all the instances of a given component type T.
    + I cannot say whether it will be useful or not to the reader, but it's worth to mention it since it's one of the corner stones of this library.

    Many of the tools described below give the possibility to get this information and have been designed around this need.
    The rest is experimentation and the desire to invent something new, hoping to have succeeded.

    -

    -Stateless systems

    -

    EnTT is designed so that it can work with stateless systems. In other words, all systems can be free functions and there is no need to define them as classes (although nothing prevents users from doing so).
    - This is possible because the main class with which the users will work provides all what is needed to act as the sole source of truth of an application.

    -

    +

    Vademecum

    The registry to store, the views and the groups to iterate. That's all.

    An entity (the E of an ECS) is an opaque identifier that users should use as-is. Inspecting an identifier isn't recommended since its format can change in future and a registry has all the functionalities to query them out-of-the-box. The type entt::entity implements the concept of entity identifier.
    @@ -104,29 +108,35 @@ Vademecum

    Systems (the S of an ECS) can be plain functions, functors, lambdas and so on. It's not required to announce them in any case and have no requirements.

    The following sections explain in short how to use the entity-component system, the core part of the whole library.
    The project is composed of many other classes in addition to those describe below. For more details, please refer to the inline documentation.

    -

    +

    Pools

    In EnTT, pools of components are made available through a specialized version of a sparse set.

    Each pool contains all the instances of a single component, as well as all the entities to which it's assigned. Sparse arrays are also paged to avoid wasting memory in some cases while packed arrays are not for obvious reasons.
    Pools also make available at any time a pointer to the packed lists of entities and components they contain, in addition to the number of elements in use. For this reason, pools can rearrange their items in order to keep the internal arrays tightly packed and maximize performance.

    At the moment, it's possible to specialize pools within certain limits, although a more flexible and user-friendly model is under development.

    -

    +

    The Registry, the Entity and the Component

    A registry can store and manage entities, as well as create views and groups to iterate the underlying data structures.
    The class template basic_registry lets users decide what's the preferred type to represent an entity. Because std::uint32_t is large enough for almost all the cases, there exists also the enum class entt::entity that wraps it and the alias entt::registry for entt::basic_registry<entt::entity>.

    Entities are represented by entity identifiers. An entity identifier carries information about the entity itself and its version.
    - User defined identifiers can be introduced by means of enum classes and custom types for which a specialization of entt_traits exists. For this purpose, entt_traits is also defined as a sfinae-friendly class template. In theory, integral types can also be used as entity identifiers, even though this may break in future and isn't recommended in general.

    + User defined identifiers can be introduced through enum classes and class types that define an entity_type member of type std::uint32_t or std::uint64_t.

    A registry is used both to construct and to destroy entities:

    // constructs a naked entity with no components and returns its identifier
    auto entity = registry.create();
    // destroys an entity and all its components
    registry.destroy(entity);
    +
    entity
    Default entity identifier.
    Definition: fwd.hpp:61

    The create member function accepts also a hint and has an overload that gets two iterators and can be used to generate multiple entities at once efficiently. Similarly, the destroy member function works also with a range of entities:

    // destroys all the entities in a range
    auto view = registry.view<a_component, another_component>();
    registry.destroy(view.begin(), view.end());
    -

    When an entity is destroyed, the registry can freely reuse it internally with a slightly different identifier. In particular, the version of an entity is increased after destruction (unless the overload that forces a version is used instead of the default one).
    +

    basic_view< entity, Args... > view
    Alias declaration for the most common use case.
    Definition: fwd.hpp:129
    +

    In addition to offering an overload to force the version upon destruction. Note that this function removes all components from an entity before releasing its identifier. There exists also a lighter alternative that only releases the elements without poking in any pool, for use with orphaned entities:

    +
    // releases an orphaned identifier
    +
    registry.release(entity);
    +

    As with the destroy function, also in this case entity ranges are supported and it's possible to force the version during release.

    +

    In both cases, when an identifier is released, the registry can freely reuse it internally. In particular, the version of an entity is increased (unless the overload that forces a version is used instead of the default one).
    Users can probe an identifier to know the information it carries:

    // returns true if the entity is still valid, false otherwise
    bool b = registry.valid(entity);
    @@ -170,7 +180,7 @@ The Registry, the Entity and the Component

    When it's unknown whether an entity already owns an instance of a component, emplace_or_replace is the function to use instead:

    registry.emplace_or_replace<position>(entity, 0., 0.);

    This is a slightly faster alternative for the following snippet:

    -
    if(registry.has<velocity>(entity)) {
    +
    if(registry.all_of<velocity>(entity)) {
    registry.replace<velocity>(entity, 0., 0.);
    } else {
    registry.emplace<velocity>(entity, 0., 0.);
    @@ -180,14 +190,15 @@ The Registry, the Entity and the Component
    bool all = registry.all_of<position, velocity>(entity);
    // true if entity has at least one of the given components
    -
    bool any = registry.any_of<position, velocity>(entity);
    -

    If the goal is to delete a component from an entity that owns it, the remove member function template is the way to go:

    +
    bool any = registry.any_of<position, velocity>(entity);
    +
    basic_any<> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    +

    If the goal is to delete a component from an entity that owns it, the erase member function template is the way to go:

    +
    registry.erase<position>(entity);
    +

    When in doubt whether the entity owns the component, use the remove member function instead. It behaves similarly to erase but it erases the component if and only if it exists, otherwise it returns safely to the caller:

    registry.remove<position>(entity);
    -

    When in doubt whether the entity owns the component, use the remove_if_exists member function instead. It behaves similarly to remove but it discards the component if and only if it exists, otherwise it returns safely to the caller:

    -
    registry.remove_if_exists<position>(entity);

    The clear member function works similarly and can be used to either:

    registry.clear<position>();

    The get member function template gives direct access to the component of an entity stored in the underlying data structures of the registry. There exists also an alternative member function named try_get that returns a pointer to the component owned by an entity if any, a null pointer otherwise.

    -

    +

    Observe changes

    Because of how the registry works internally, it stores a bunch of signal handlers for each pool in order to notify some of its data structures on the construction and destruction of components or when an instance of a component is explicitly replaced by the user.
    These signal handlers are also exposed and made available to users. These are the basic bricks to build fancy things like dependencies and reactive systems.

    @@ -242,7 +253,7 @@ Observe changes

    Events and therefore listeners must not be used as replacements for systems. They shouldn't contain much logic and interactions with a registry should be kept to a minimum. Moreover, the greater the number of listeners, the greater the performance hit when components are created or destroyed.

    Please, refer to the documentation of the signal class to know all the features it offers.
    There are many useful but less known functionalities that aren't described here, such as the connection objects or the possibility to attach listeners with a list of parameters that is shorter than that of the signal itself.

    -

    +

    They call me Reactive System

    Signals are the basic tools to construct reactive systems, even if they aren't enough on their own. EnTT tries to take another step in that direction with the observer class template.
    In order to explain what reactive systems are, this is a slightly revised quote from the documentation of the library that first introduced this tool, Entitas:

    @@ -251,6 +262,9 @@ They call me Reactive System On these words, however, the similarities with the proposal of Entitas also end. The rules of the language and the design of the library obviously impose and allow different things.

    An observer is initialized with an instance of a registry and a set of rules that describes what are the entities to intercept. As an example:

    entt::observer observer{registry, entt::collector.update<sprite>()};
    +
    Observer.
    Definition: observer.hpp:172
    +
    basic_observer< entity > observer
    Alias declaration for the most common use case.
    Definition: fwd.hpp:81
    +
    constexpr basic_collector collector
    Variable template used to ease the definition of collectors.
    Definition: observer.hpp:119

    The class is default constructible and can be reconfigured at any time by means of the connect member function. Moreover, instances can be disconnected from the underlying registries through the disconnect member function.
    The observer offers also what is needed to query the internal state and to know if it's empty or how many entities it contains. Moreover, it can return a raw pointer to the list of entities it contains.

    However, the most important features of this class are that:

    @@ -288,7 +302,7 @@ They call me Reactive System

    This clause introduces a way to intercept entities if and only if they are already part of a hypothetical group. If they are not, they aren't returned by the observer, no matter if they matched the given rule.
    In the example above, whenever the component sprite of an entity is updated, the observer probes the entity itself to verify that it has at least position and has not velocity before to store it aside. If one of the two conditions of the filter isn't respected, the entity is discared, no matter what.

    A where clause accepts a theoretically unlimited number of types as well as multiple elements in the exclusion list. Moreover, every matcher can have its own clause and multiple clauses for the same matcher are combined in a single one.

    -

    +

    Sorting: is it possible?

    Sorting entities and components is possible with EnTT. In particular, it's feasible with an in-place algorithm that doesn't require memory allocations nor anything else and is therefore particularly convenient.
    With this in mind, there are two functions that respond to slightly different needs:

    @@ -300,8 +314,9 @@ Sorting: is it possible?
    });

    Or by accessing their entities:

    registry.sort<renderable>([](const entt::entity lhs, const entt::entity rhs) {
    -
    return entt::registry::entity(lhs) < entt::registry::entity(rhs);
    +
    return entt::registry::entity(lhs) < entt::registry::entity(rhs);
    });
    +
    static entity_type entity(const entity_type entity)
    Returns the entity identifier without the version.
    Definition: registry.hpp:165

    There exists also the possibility to use a custom sort function object for when the usage pattern is known. As an example, in case of an almost sorted pool, quick sort could be much slower than insertion sort.

    Some uses are rather trivial, but it's useful to note that there are some less obvious corner cases that can in turn be solved with the use of policies.

    -

    +

    Named constants and enums

    A special mention should be made for constant values and enums. It wouldn't be necessary, but it will help distracted readers.

    As mentioned, the data member function can be used to reflect constants of any type among the other things.
    @@ -438,10 +449,11 @@ Named constants and enums

    entt::meta<int>().data<2048>("max_int"_hs);

    It goes without saying that accessing them is trivial as well. It's a matter of doing the following, as with any other data member of a meta type:

    -
    auto value = entt::resolve<my_enum>().data("a_value"_hs).get({}).cast<my_enum>();
    +
    auto value = entt::resolve<my_enum>().data("a_value"_hs).get({}).cast<my_enum>();
    auto max = entt::resolve<int>().data("max_int"_hs).get({}).cast<int>();
    +
    const void * data() const
    Returns an opaque pointer to the contained instance.
    Definition: meta.hpp:332

    As a side note, remember that all this happens behind the scenes without any allocation because of the small object optimization performed by the meta_any class.

    -

    +

    Properties and meta objects

    Sometimes (for example, when it comes to creating an editor) it might be useful to attach properties to the meta objects created. Fortunately, this is possible for most of them.
    For the meta objects that support properties, the member functions of the factory used for registering them will return a decorated version of the factory itself. The latter can be used to attach properties to the last created meta object.
    @@ -478,6 +490,7 @@ Properties and meta objects

    .data<&my_type::data_member>("member"_hs)
    .prop(std::make_pair("tooltip"_hs, "Member"))
    .prop(my_enum::a_value, 42);
    +
    Zero overhead unique identifier.

    Alternatively, the props function is available to associate several properties at a time. However, in this case properties in the key/value form aren't allowed, since they would be interpreted as two different properties rather than a single one.

    The meta objects for which properties are supported are currently the meta types, meta constructors, meta data and meta functions. It's not possible to attach properties to other types of meta objects and the factory returned as a result of their construction won't allow such an operation.

    These types offer a couple of member functions named prop to iterate all properties at once or to search a specific property by key:

    @@ -489,7 +502,7 @@ Properties and meta objects
    // search for a given property by name
    auto prop = entt::resolve<my_type>().prop("tooltip"_hs);

    Meta properties are objects having a fairly poor interface, all in all. They only provide the key and the value member functions to be used to retrieve the key and the value contained in the form of meta_any objects, respectively.

    -

    +

    Unregister types

    A type registered with the reflection system can also be unregistered. This means unregistering all its data members, member functions, conversion functions and so on. However, base classes aren't unregistered as well, since they don't necessarily depend on it. Similarly, implicitly generated types (as an example, the meta types implicitly generated for function parameters when needed) aren't unregistered.
    Roughly speaking, unregistering a type means disconnecting all associated meta objects from it and making its identifier no longer visible. The underlying node will remain available though, as if it were implicitly generated:

    @@ -497,22 +510,9 @@ Unregister types

    The type can be re-registered later with a completely different name and form.

    -
    entt::meta_type::is_template_specialization
    bool is_template_specialization() const noexcept
    Checks whether a type refers to a recognized class template specialization or not.
    Definition: meta.hpp:1204
    -
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:159
    -
    entt::as_void_t
    Empty class type used to request the as void policy.
    Definition: policy.hpp:21
    -
    entt::view
    basic_view< entity, Args... > view
    Alias declaration for the most common use case.
    Definition: fwd.hpp:128
    -
    entt::basic_any::type
    type_info type() const noexcept
    Returns the type of the contained object.
    Definition: any.hpp:251
    -
    entt::adl_meta_pointer_like::dereference
    static decltype(auto) dereference(const Type &value)
    Uses the default ADL based lookup method to resolve the call.
    Definition: adl_pointer.hpp:31
    -
    entt::meta_template_traits
    Traits class template to be specialized to enable support for meta template information.
    Definition: type_traits.hpp:16
    -
    entt::adl_meta_pointer_like
    Fake ADL based lookup function for meta pointer-like types.
    Definition: adl_pointer.hpp:25
    -
    entt::as_ref_t
    Empty class type used to request the as ref policy.
    Definition: policy.hpp:9
    -
    entt::basic_hashed_string
    Zero overhead unique identifier.
    Definition: hashed_string.hpp:64
    -
    entt::resolve
    meta_type resolve() noexcept
    Returns the meta type associated with a given type.
    Definition: resolve.hpp:22
    -
    entt::dereference_meta_pointer_like
    decltype(auto) dereference_meta_pointer_like(const Type &value)
    ADL based lookup function for dereferencing meta pointer-like types.
    Definition: adl_pointer.hpp:15
    -
    entt::any
    basic_any< sizeof(double[2])> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    diff --git a/md_docs_md_poly.html b/md_docs_md_poly.html index 3244b4c43..2de03aecc 100644 --- a/md_docs_md_poly.html +++ b/md_docs_md_poly.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: poly @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,16 +66,16 @@ $(function() {
    Crash Course: poly
    -

    +

    Introduction

    Static polymorphism is a very powerful tool in C++, albeit sometimes cumbersome to obtain.
    This module aims to make it simple and easy to use.

    The library allows to define concepts as interfaces to fullfill with concrete classes withouth having to inherit from a common base.
    This is, among others, one of the advantages of static polymorphism in general and of a generic wrapper like that offered by the poly class template in particular.
    What users get is an object that can be passed around as such and not through a reference or a pointer, as happens when it comes to working with dynamic polymorphism.

    -

    Since the poly class template makes use of entt::any internally, it also supports most of its feature. Among the most important, the possibility to create aliases to existing and thus unmanaged objects. This allows users to exploit the static polymorphism while maintaining ownership of objects.
    - Likewise, the poly class template also benefits from the small buffer optimization offered by the entt::any class and therefore minimizes the number of allocations, avoiding them altogether where possible.

    -

    +

    Since the poly class template makes use of entt::any internally, it also supports most of its feature. Among the most important, the possibility to create aliases to existing and thus unmanaged objects. This allows users to exploit the static polymorphism while maintaining ownership of objects.
    + Likewise, the poly class template also benefits from the small buffer optimization offered by the entt::any class and therefore minimizes the number of allocations, avoiding them altogether where possible.

    +

    Other libraries

    There are some very interesting libraries regarding static polymorphism.
    Among all, the two that I prefer are:

    @@ -86,13 +86,13 @@ Other libraries

    The former is admittedly an experimental library, with many interesting ideas. I've some doubts about the usefulness of some feature in real world projects, but perhaps my lack of experience comes into play here. In my opinion, its only flaw is the API which I find slightly more cumbersome than other solutions.
    The latter was undoubtedly a source of inspiration for this module, although I opted for different choices in the implementation of both the final API and some feature.

    Either way, the authors are gurus of the C++ community, people I only have to learn from.

    -

    +

    Concept and implementation

    The first thing to do to create a type-erasing polymorphic object wrapper (to use the terminology introduced by Eric Niebler) is to define a concept that types will have to adhere to.
    For this purpose, the library offers a single class that supports both deduced and fully defined interfaces. Although having interfaces deduced automatically is convenient and allows users to write less code in most cases, this has some limitations and it's therefore useful to be able to get around the deduction by providing a custom definition for the static virtual table.

    Once the interface is defined, it will be sufficient to provide a generic implementation to fullfill the concept.
    Also in this case, the library allows customizations based on types or families of types, so as to be able to go beyond the generic case where necessary.

    -

    +

    Deduced interface

    This is how a concept with a deduced interface is introduced:

    struct Drawable: entt::type_list<> {
    @@ -103,6 +103,7 @@ Deduced interface
    // ...
    };
    +
    A class to use to push around lists of types, nothing more.

    It's recognizable by the fact that it inherits from an empty type list.
    Functions can also be const, accept any number of paramters and return a type other than void:

    struct Drawable: entt::type_list<> {
    @@ -125,7 +126,7 @@ Deduced interface
    };

    Once the concept is defined, users must provide a generic implementation of it in order to tell the system how any type can satisfy its requirements. This is done via an alias template within the concept itself.
    The index passed as a template parameter to either invoke or poly_call refers to how this alias is defined.

    -

    +

    Defined interface

    A fully defined concept is no different to one for which the interface is deduced, with the only difference that the list of types is not empty this time:

    struct Drawable: entt::type_list<void()> {
    @@ -156,7 +157,7 @@ Defined interface

    In other words, it's not possible to make use of functions not belonging to the interface, even if they are present in the types that fulfill the concept.
    Similarly, it's not possible to deduce a function in the static virtual table with a function type different from that of the associated member function in the interface itself.

    Explicitly defining a static virtual table suppresses the deduction step and allows maximum flexibility when providing the implementation for a concept.

    -

    +

    Fullfill a concept

    The impl alias template of a concept is used to define how it's fulfilled:

    struct Drawable: entt::type_list<> {
    @@ -165,6 +166,7 @@ Fullfill a concept
    template<typename Type>
    };
    +
    A class to use to push around lists of constant values, nothing more.

    In this case, it's stated that the draw method of a generic type will be enough to satisfy the requirements of the Drawable concept.
    Both member functions and free functions are supported to fullfill concepts:

    template<typename Type>
    @@ -179,7 +181,7 @@ Fullfill a concept

    Likewise, as long as the parameter types and return type support conversions to and from those of the function type referenced in the static virtual table, the actual implementation may differ in its function type since it's erased internally.
    Moreover, the self parameter isn't strictly required by the system and can be left out for free functions if not required.

    Refer to the inline documentation for more details.

    -

    +

    Inheritance

    Concept inheritance is straightforward due to how poly looks like in EnTT. Therefore, it's quite easy to build hierarchies of concepts if necessary.
    The only constraint is that all concepts in a hierarchy must belong to the same family, that is, they must be either all deduced or all defined.

    @@ -197,6 +199,7 @@ Inheritance
    >;
    };
    +
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.

    The static virtual table is empty and must remain so.
    On the other hand, type no longer inherits from Base and instead forwards its template parameter to the type exposed by the base class. Internally, the size of the static virtual table of the base class is used as an offset for the local indexes.
    Finally, by means of the value_list_cat_t utility, the implementation consists in appending the new functions to the previous list.

    @@ -211,9 +214,10 @@ Inheritance
    > {
    // ...
    };
    +
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.

    Similar to above, type_list_cat_t is used to concatenate the underlying static virtual table with the new function types.
    Everything else is the same as already shown instead.

    -

    +

    Static polymorphism in the wild

    Once the concept and implementation have been introduced, it will be possible to use the poly class template to contain instances that meet the requirements:

    using drawable = entt::poly<Drawable>;
    @@ -233,31 +237,27 @@ Static polymorphism in the wild
    instance = square{};
    instance->draw();
    -

    The poly class template offers a wide range of constructors, from the default one (which will return an uninitialized poly object) to the copy and move constructor, as well as the ability to create objects in-place.
    - Among others, there is a constructor that allows users to wrap unmanaged objects in a poly instance (either const or non-const ones):

    +
    Static polymorphism made simple and within everyone's reach.
    Definition: poly.hpp:181
    +

    The poly class template offers a wide range of constructors, from the default one (which will return an uninitialized poly object) to the copy and move constructors, as well as the ability to create objects in-place.
    + Among others, there is also a constructor that allows users to wrap unmanaged objects in a poly instance (either const or non-const ones):

    circle shape;
    -
    drawable instance{std::ref(shape)};
    +
    drawable instance{std::in_place_type<circle &>, shape};

    Similarly, it's possible to create non-owning copies of poly from an existing object:

    drawable other = instance.as_ref();

    In both cases, although the interface of the poly object doesn't change, it won't construct any element or take care of destroying the referenced objects.

    Note also how the underlying concept is accessed via a call to operator-> and not directly as instance.draw().
    This allows users to decouple the API of the wrapper from that of the concept. Therefore, where instance.data() will invoke the data member function of the poly object, instance->data() will map directly to the functionality exposed by the underlying concept.

    -

    +

    Storage size and alignment requirement

    -

    Under the hood, the poly class template makes use of entt::any. Therefore, it can take advantage of the possibility of defining at compile-time the size of the storage suitable for the small buffer optimization as well as the alignment requirements:

    +

    Under the hood, the poly class template makes use of entt::any. Therefore, it can take advantage of the possibility of defining at compile-time the size of the storage suitable for the small buffer optimization as well as the alignment requirements:

    entt::basic_poly<Drawable, sizeof(double[4]), alignof(double[4])>

    The default size is sizeof(double[2]), which seems like a good compromise between a buffer that is too large and one unable to hold anything larger than an integer. The alignment requirement is optional instead and by default such that it's the most stringent (the largest) for any object whose size is at most equal to the one provided.
    It's worth noting that providing a size of 0 (which is an accepted value in all respects) will force the system to dynamically allocate the contained objects in all cases.

    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    -
    entt::value_list
    A class to use to push around lists of constant values, nothing more.
    Definition: type_traits.hpp:323
    -
    entt::type_list_cat_t
    typename type_list_cat< List... >::type type_list_cat_t
    Helper type.
    Definition: type_traits.hpp:225
    -
    entt::value_list_cat_t
    typename value_list_cat< List... >::type value_list_cat_t
    Helper type.
    Definition: type_traits.hpp:421
    -
    entt::basic_poly
    Static polymorphism made simple and within everyone's reach.
    Definition: poly.hpp:181
    diff --git a/md_docs_md_process.html b/md_docs_md_process.html index 987063bae..9f7d46603 100644 --- a/md_docs_md_process.html +++ b/md_docs_md_process.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: cooperative scheduler @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,14 +66,14 @@ $(function() {
    Crash Course: cooperative scheduler
    -

    +

    Introduction

    Sometimes processes are a useful tool to work around the strict definition of a system and introduce logic in a different way, usually without resorting to the introduction of other components.

    EnTT offers a minimal support to this paradigm by introducing a few classes that users can use to define and execute cooperative processes.

    -

    +

    The process

    A typical process must inherit from the process class template that stays true to the CRTP idiom. Moreover, derived classes must specify what's the intended type for elapsed times.

    -

    A process should expose publicly the following member functions whether required (note that it isn't required to define a function unless the derived class wants to override the default behavior):

    +

    A process should expose publicly the following member functions whether needed (note that it isn't required to define a function unless the derived class wants to override the default behavior):

    • void update(Delta, void *);

      It's invoked once per tick until a process is explicitly aborted or it terminates either with or without errors. Even though it's not mandatory to declare this member function, as a rule of thumb each process should at least define it to work properly. The void * parameter is an opaque pointer to user data (if any) forwarded directly to the process during an update.

      @@ -106,14 +106,16 @@ The process

    // ...
    if(!remaining) {
    - +
    }
    }
    private:
    delta_type remaining;
    };
    -

    +
    Base class for processes.
    Definition: process.hpp:73
    +
    void succeed()
    Terminates a process with success if it's still alive.
    Definition: process.hpp:124
    +

    Adaptor

    Lambdas and functors can't be used directly with a scheduler for they are not properly defined processes with managed life cycles.
    This class helps in filling the gap and turning lambdas and functors into full featured processes usable by a scheduler.

    @@ -128,27 +130,33 @@ Adaptor

    Both succeed and fail accept no parameters at all.

    Note that usually users shouldn't worry about creating adaptors at all. A scheduler creates them internally each and every time a lambda or a functor is used as a process.

    -

    +

    The scheduler

    A cooperative scheduler runs different processes and helps managing their life cycles.

    Each process is invoked once per tick. If it terminates, it's removed automatically from the scheduler and it's never invoked again. Otherwise it's a good candidate to run one more time the next tick.
    A process can also have a child. In this case, the parent process is replaced with its child when it terminates and only if it returns with success. In case of errors, both the parent process and its child are discarded. This way, it's easy to create chain of processes to run sequentially.

    Using a scheduler is straightforward. To create it, users must provide only the type for the elapsed times and no arguments at all:

    entt::scheduler<std::uint32_t> scheduler;
    +
    Cooperative scheduler for processes.
    Definition: scheduler.hpp:44

    It has member functions to query its internal data structures, like empty or size, as well as a clear utility to reset it to a clean state:

    // checks if there are processes still running
    -
    const auto empty = scheduler.empty();
    +
    const auto empty = scheduler.empty();
    // gets the number of processes still running
    -
    entt::scheduler<std::uint32_t>::size_type size = scheduler.size();
    +
    entt::scheduler<std::uint32_t>::size_type size = scheduler.size();
    // resets the scheduler to its initial state and discards all the processes
    scheduler.clear();
    +
    size_type size() const
    Number of processes currently scheduled.
    Definition: scheduler.hpp:127
    +
    void clear()
    Discards all scheduled processes.
    Definition: scheduler.hpp:145
    +
    bool empty() const
    Returns true if at least a process is currently scheduled.
    Definition: scheduler.hpp:135
    +
    std::size_t size_type
    Unsigned integer type.
    Definition: scheduler.hpp:112

    To attach a process to a scheduler there are mainly two ways:

    scheduler.attach<my_process>(1000u);
    +
    auto attach(Args &&... args)
    Schedules a process for the next tick.
    Definition: scheduler.hpp:175
    @@ -179,17 +187,9 @@ The scheduler
    scheduler.abort();
    -
    entt::scheduler::clear
    void clear()
    Discards all scheduled processes.
    Definition: scheduler.hpp:147
    -
    entt::process::succeed
    void succeed() noexcept
    Terminates a process with success if it's still alive.
    Definition: process.hpp:124
    -
    entt::scheduler
    Cooperative scheduler for processes.
    Definition: scheduler.hpp:44
    -
    entt::process
    Base class for processes.
    Definition: process.hpp:73
    -
    entt::scheduler::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: scheduler.hpp:114
    -
    entt::scheduler::size
    size_type size() const noexcept
    Number of processes currently scheduled.
    Definition: scheduler.hpp:129
    -
    entt::scheduler::attach
    auto attach(Args &&... args)
    Schedules a process for the next tick.
    Definition: scheduler.hpp:177
    -
    entt::scheduler::empty
    bool empty() const noexcept
    Returns true if at least a process is currently scheduled.
    Definition: scheduler.hpp:137
    diff --git a/md_docs_md_reference.html b/md_docs_md_reference.html index 73babf8de..8e5e6fd24 100644 --- a/md_docs_md_reference.html +++ b/md_docs_md_reference.html @@ -3,7 +3,7 @@ - + EnTT: Similar projects @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -118,7 +118,7 @@ $(function() { diff --git a/md_docs_md_resource.html b/md_docs_md_resource.html index f97495e13..4e34f6631 100644 --- a/md_docs_md_resource.html +++ b/md_docs_md_resource.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: resource management @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,13 +66,13 @@ $(function() {
    Crash Course: resource management
    -

    +

    Introduction

    Resource management is usually one of the most critical part of a software like a game. Solutions are often tuned to the particular application. There exist several approaches and all of them are perfectly fine as long as they fit the requirements of the piece of software in which they are used.
    Examples are loading everything on start, loading on request, predictive loading, and so on.

    EnTT doesn't pretend to offer a one-fits-all solution for the different cases. Instead, it offers a minimal and perhaps trivial cache that can be useful most of the time during prototyping and sometimes even in a production environments.
    For those interested in the subject, the plan is to improve it considerably over time in terms of performance, memory usage and functionalities. Hoping to make it, of course, one step at a time.

    -

    +

    The resource, the loader and the cache

    There are three main actors in the model: the resource, the loader and the cache.

    The resource is whatever users want it to be. An image, a video, an audio, whatever. There are no limits.
    @@ -82,6 +82,7 @@ The resource, the loader and the cache

    struct my_loader final: entt::resource_loader<my_loader, my_resource> {
    // ...
    };
    +
    Base class for resource loaders.
    Definition: loader.hpp:45

    Where my_resource is the type of resources it creates.
    A resource loader must also expose a public const member function named load that accepts a variable number of arguments and returns a shared pointer to a resource.
    As an example:

    @@ -99,11 +100,12 @@ The resource, the loader and the cache
    // ...
    my_cache cache{};
    +
    Simple cache for resources of a given type.
    Definition: cache.hpp:29

    The idea is to create different caches for different types of resources and to manage each one independently in the most appropriate way.
    As a (very) trivial example, audio tracks can survive in most of the scenes of an application while meshes can be associated with a single scene and then discarded when users leave it.

    A cache offers a set of basic functionalities to query its internal state and to organize it:

    // gets the number of resources managed by a cache
    -
    const auto size = cache.size();
    +
    const auto size = cache.size();
    // checks if a cache contains at least a valid resource
    const auto empty = cache.empty();
    @@ -115,6 +117,8 @@ The resource, the loader and the cache
    constexpr auto identifier = "my/resource/identifier"_hs;
    // this is equivalent to the following
    constexpr entt::id_type hs = entt::hashed_string{"my/resource/identifier"};
    +
    Zero overhead unique identifier.
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17

    The class hashed_string is described in a dedicated section, so I won't go in details here.

    Resources are loaded and thus stored in a cache through the load member function. It accepts the loader to use as a template parameter, the resource identifier and the parameters used to construct the resource as arguments:

    // uses the identifier declared above
    @@ -123,13 +127,15 @@ The resource, the loader and the cache
    // uses a hashed string directly
    cache.load<my_loader>("another/identifier"_hs, 42);

    The function returns a handle to the resource, whether it already exists or is loaded. In case the loader returns an invalid pointer, the handle is invalid as well and therefore it can be easily used with an if statement:

    -
    if(entt::resource_handle handle = cache.load<my_loader>("another/identifier"_hs, 42); handle) {
    +
    if(entt::resource_handle handle = cache.load<my_loader>("another/identifier"_hs, 42); handle) {
    // ...
    }
    +
    Shared resource handle.
    Definition: handle.hpp:28

    Before trying to load a resource, the contains member function can be used to know if a cache already contains a specific resource:

    auto exists = cache.contains("my/identifier"_hs);

    There exists also a member function to use to force a reload of an already existing resource if needed:

    auto handle = cache.reload<my_loader>("another/identifier"_hs, 42);
    +
    basic_handle< entity > handle
    Alias declaration for the most common use case.
    Definition: fwd.hpp:89

    As above, the function returns a handle to the resource that is invalid in case of errors. The reload member function is a kind of alias of the following snippet:

    cache.discard(identifier);
    cache.load<my_loader>(identifier, 42);
    @@ -165,16 +171,9 @@ The resource, the loader and the cache

    Do not forget to test the handle for validity. Otherwise, getting a reference to the resource it points may result in undefined behavior.

    -
    entt::resource_loader
    Base class for resource loaders.
    Definition: loader.hpp:45
    -
    entt::handle
    basic_handle< entity > handle
    Alias declaration for the most common use case.
    Definition: fwd.hpp:88
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::basic_hashed_string
    Zero overhead unique identifier.
    Definition: hashed_string.hpp:64
    -
    entt::resource_cache
    Simple cache for resources of a given type.
    Definition: cache.hpp:29
    -
    entt::scheduler::size
    size_type size() const noexcept
    Number of processes currently scheduled.
    Definition: scheduler.hpp:129
    -
    entt::resource_handle
    Shared resource handle.
    Definition: handle.hpp:27
    diff --git a/md_docs_md_signal.html b/md_docs_md_signal.html index 98cfb06d0..000b42999 100644 --- a/md_docs_md_signal.html +++ b/md_docs_md_signal.html @@ -3,7 +3,7 @@ - + EnTT: Crash Course: events, signals and everything in between @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,19 +66,21 @@ $(function() {
    Crash Course: events, signals and everything in between
    -

    +

    Introduction

    Signals are usually a core part of games and software architectures in general.
    Roughly speaking, they help to decouple the various parts of a system while allowing them to communicate with each other somehow.

    The so called modern C++ comes with a tool that can be useful in these terms, the std::function. As an example, it can be used to create delegates.
    However, there is no guarantee that an std::function does not perform allocations under the hood and this could be problematic sometimes. Furthermore, it solves a problem but may not adapt well to other requirements that may arise from time to time.

    In case that the flexibility and power of an std::function isn't required or if the price to pay for them is too high,EnTT offers a complete set of lightweight classes to solve the same and many other problems.

    -

    +

    Delegate

    A delegate can be used as a general purpose invoker with no memory overhead for free functions and members provided along with an instance on which to invoke them.
    It doesn't claim to be a drop-in replacement for an std::function, so don't expect to use it whenever an std::function fits well. That said, it's most likely even a better fit than an std::function in a lot of cases, so expect to use it quite a lot anyway.

    The interface is trivial. It offers a default constructor to create empty delegates:

    -
    +
    +
    Basic delegate implementation.
    Definition: delegate.hpp:82
    +
    delegate(connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
    Deduction guide.

    All what is needed to create an instance is to specify the type of the function the delegate will contain, that is the signature of the free function or the member one wants to assign to it.

    Attempting to use an empty delegate by invoking its function call operator results in undefined behavior or most likely a crash. Before to use a delegate, it must be initialized.
    There exists a bunch of overloads of the connect member function to do that. As an example of use:

    @@ -89,24 +91,24 @@ Delegate

    };
    // bind a free function to the delegate
    -
    delegate.connect<&f>();
    +
    delegate.connect<&f>();
    // bind a member function to the delegate
    my_struct instance;
    -
    delegate.connect<&my_struct::f>(instance);
    +
    delegate.connect<&my_struct::f>(instance);

    The delegate class accepts also data members, if needed. In this case, the function type of the delegate is such that the parameter list is empty and the value of the data member is at least convertible to the return type.

    Free functions having type equivalent to void(T &, args...) are accepted as well. The first argument T & is considered a payload and the function will receive it back every time it's invoked. In other terms, this works just fine with the above definition:

    void g(const char &c, int i) { /* ... */ }
    const char c = 'c';
    -
    delegate.connect<&g>(c);
    - +
    delegate.connect<&g>(c);
    +

    The function g will be invoked with a reference to c and 42. However, the function type of the delegate is still void(int). This is also the signature of its function call operator.

    Another interesting aspect of the delegate class is that it accepts also functions with a list of parameters that is shorter than that of the function type used to specialize the delegate itself.
    The following code is therefore perfectly valid:

    void g() { /* ... */ }
    -
    delegate.connect<&g>();
    - +
    delegate.connect<&g>();
    +

    Where the function type of the delegate is void(int) as above. It goes without saying that the extra arguments are silently discarded internally.
    This is a nice-to-have feature in a lot of cases, as an example when the delegate class is used as a building block of a signal-slot system.

    To create and initialize a delegate at once, there are a few specialized constructors. Because of the rules of the language, the listener is provided by means of the entt::connect_arg variable template:

    @@ -117,17 +119,17 @@ Delegate
    // ...
    }

    Finally, to invoke a delegate, the function call operator is the way to go as already shown in the examples above:

    -
    auto ret = delegate(42);
    +
    auto ret = delegate(42);

    In all cases, the listeners don't have to strictly follow the signature of the delegate. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given result type, everything works just fine.

    As a side note, members of classes may or may not be associated with instances. If they are not, the first argument of the function type must be that of the class on which the members operate and an instance of this class must obviously be passed when invoking the delegate:

    -
    entt::delegate<void(my_struct &, int)> delegate;
    -
    delegate.connect<&my_struct::f>();
    +
    entt::delegate<void(my_struct &, int)> delegate;
    +
    delegate.connect<&my_struct::f>();
    my_struct instance;
    -
    delegate(instance, 42);
    +
    delegate(instance, 42);

    In this case, it's not possible to deduce the function type since the first argument doesn't necessarily have to be a reference (for example, it can be a pointer, as well as a const reference).
    Therefore, the function type must be declared explicitly for unbound members.

    -

    +

    Runtime arguments

    The delegate class is meant to be used primarily with template arguments. However, as a consequence of its design, it can also offer minimal support for runtime arguments.
    When used in this modality, some feature aren't supported though. In particular:

    @@ -143,13 +145,13 @@ Runtime arguments
    const int value = 42;
    // use the constructor ...
    -
    entt::delegate delegate{&func, &value};
    +
    entt::delegate delegate{&func, &value};
    // ... or the connect member function
    -
    delegate.connect(&func, &value);
    +
    delegate.connect(&func, &value);

    The type of the delegate is deduced from the function if possible. In this case, since the first argument is an implementation detail, the deduced function type is int(int).
    Invoking a delegate built in this way follows the same rules as previously explained.

    -

    +

    Lambda support

    In general, the delegate class doesn't fully support lambda functions in all their nuances. The reason is pretty simple: a delegate isn't a drop-in replacement for an std::function. Instead, it tries to overcome the problems with the latter.
    That being said, non-capturing lambda functions are supported, even though some feature aren't available in this case.

    @@ -158,16 +160,16 @@ Lambda support
    my_struct instance;
    // use the constructor ...
    -
    entt::delegate delegate{+[](const void *ptr, int value) {
    +
    entt::delegate delegate{+[](const void *ptr, int value) {
    return static_cast<const my_struct *>(ptr)->f(value);
    }, &instance};
    // ... or the connect member function
    -
    delegate.connect([](const void *ptr, int value) {
    +
    delegate.connect([](const void *ptr, int value) {
    return static_cast<const my_struct *>(ptr)->f(value);
    }, &instance);

    As above, the first parameter (const void *) isn't part of the function type of the delegate and is used to dispatch arbitrary user data back and forth. In other terms, the function type of the delegate above is int(int).

    -

    +

    Signals

    Signal handlers work with references to classes, function pointers and pointers to members. Listeners can be any kind of objects and users are in charge of connecting and disconnecting them from a signal to avoid crashes due to different lifetimes. On the other side, performance shouldn't be affected that much by the presence of such a signal handler.
    Signals make use of delegates internally and therefore they undergo the same rules and offer similar functionalities. It may be a good idea to consult the documentation of the delegate class for further information.

    @@ -175,6 +177,7 @@ Signals

    The API of a signal handler is straightforward. If a collector is supplied to the signal when something is published, all the values returned by the listeners can be literally collected and used later by the caller. Otherwise, the class works just like a plain signal that emits events from time to time.
    To create instances of signal handlers it is sufficient to provide the type of function to which they refer:

    entt::sigh<void(int, char)> signal;
    +
    Unmanaged signal handler.
    Definition: fwd.hpp:30

    Signals offer all the basic functionalities required to know how many listeners they contain (size) or if they contain at least a listener (empty), as well as a function to use to swap handlers (swap).

    Besides them, there are member functions to use both to connect and disconnect listeners in all their forms by means of a sink:

    void foo(int, char) { /* ... */ }
    @@ -185,28 +188,30 @@ Signals
    // ...
    -
    entt::sink sink{signal};
    +
    entt::sink sink{signal};
    listener instance;
    -
    sink.connect<&foo>();
    -
    sink.connect<&listener::bar>(instance);
    +
    sink.connect<&foo>();
    +
    sink.connect<&listener::bar>(instance);
    // ...
    // disconnects a free function
    -
    sink.disconnect<&foo>();
    +
    sink.disconnect<&foo>();
    // disconnect a member function of an instance
    -
    sink.disconnect<&listener::bar>(instance);
    +
    sink.disconnect<&listener::bar>(instance);
    // disconnect all member functions of an instance, if any
    -
    sink.disconnect(instance);
    +
    sink.disconnect(instance);
    // discards all listeners at once
    -
    sink.disconnect();
    +
    sink.disconnect();
    +
    Sink class.
    Definition: fwd.hpp:26
    +
    sink(sigh< Ret(Args...)> &) -> sink< Ret(Args...)>
    Deduction guide.

    As shown above, the listeners don't have to strictly follow the signature of the signal. As long as a listener can be invoked with the given arguments to yield a result that is convertible to the given return type, everything works just fine.
    It's also possible to connect a listener before other listeners already contained by the signal. The before function returns a sink object correctly initialized for the purpose that can be used to connect one or more listeners in order and in the desired position:

    -
    sink.before<&foo>().connect<&listener::bar>(instance);
    +
    sink.before<&foo>().connect<&listener::bar>(instance);

    In all cases, the connect member function returns by default a connection object to be used as an alternative to break a connection by means of its release member function. A scoped_connection can also be created from a connection. In this case, the link is broken automatically as soon as the object goes out of scope.

    Once listeners are attached (or even if there are no listeners at all), events and data in general can be published through a signal by means of the publish member function:

    signal.publish(42, 'c');
    @@ -217,10 +222,10 @@ Signals
    // ...
    entt::sigh<int()> signal;
    -
    entt::sink sink{signal};
    +
    entt::sink sink{signal};
    -
    sink.connect<&f>();
    -
    sink.connect<&g>();
    +
    sink.connect<&f>();
    +
    sink.connect<&g>();
    std::vector<int> vec{};
    signal.collect([&vec](int value) { vec.push_back(value); });
    @@ -242,12 +247,14 @@ Signals
    my_collector collector;
    signal.collect(std::ref(collector));
    -

    +
    constexpr basic_collector collector
    Variable template used to ease the definition of collectors.
    Definition: observer.hpp:119
    +

    Event dispatcher

    The event dispatcher class is designed so as to be used in a loop. It allows users both to trigger immediate events or to queue events to be published all together once per tick.
    This class shares part of its API with the one of the signal handler, but it doesn't require that all the types of events are specified when declared:

    // define a general purpose dispatcher
    entt::dispatcher dispatcher{};
    +
    Basic dispatcher implementation.
    Definition: dispatcher.hpp:31

    In order to register an instance of a class to a dispatcher, its type must expose one or more member functions the arguments of which are such that E & can be converted to them for each type of event E, no matter what the return value is.
    The name of the member function aimed to receive the event must be provided to the connect member function of the sink in charge for the specific event:

    struct an_event { int value; };
    @@ -281,7 +288,7 @@ Event dispatcher
    // emits all the events queued so far at once
    dispatcher.update();

    This way users can embed the dispatcher in a loop and literally dispatch events once per tick to their systems.

    -

    +

    Event emitter

    A general purpose event emitter thought mainly for those cases where it comes to working with asynchronous stuff.
    Originally designed to fit the requirements of uvw (a wrapper for libuv written in modern C++), it was adapted later to be included in this library.

    @@ -340,16 +347,9 @@ Event emitter

    In general, the event emitter is a handy tool when the derived classes wrap asynchronous operations, because it introduces a nice-to-have model based on events and listeners that kindly hides the complexity behind the scenes. However it is not limited to such uses.

    -
    entt::sigh
    Unmanaged signal handler.
    Definition: fwd.hpp:30
    -
    entt::sink
    sink(sigh< Ret(Args...)> &) noexcept -> sink< Ret(Args...)>
    Deduction guide.
    -
    entt::delegate
    delegate(connect_arg_t< Candidate >) noexcept -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
    Deduction guide.
    -
    entt::collector
    constexpr basic_collector collector
    Variable template used to ease the definition of collectors.
    Definition: observer.hpp:119
    -
    entt::dispatcher
    Basic dispatcher implementation.
    Definition: dispatcher.hpp:31
    -
    entt::sink
    Sink class.
    Definition: fwd.hpp:26
    -
    entt::delegate
    Basic delegate implementation.
    Definition: delegate.hpp:82
    diff --git a/md_docs_md_unreal.html b/md_docs_md_unreal.html index 1e92502b4..095cb7e53 100644 --- a/md_docs_md_unreal.html +++ b/md_docs_md_unreal.html @@ -3,7 +3,7 @@ - + EnTT: EnTT and Unreal Engine @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,7 +66,7 @@ $(function() {
    EnTT and Unreal Engine
    -

    +

    Enable Cpp17

    As of writing (Unreal Engine v4.25), the default C++ standard of Unreal Engine is C++14.
    On the other hand, note that EnTT requires C++17 to compile. To enable it, in the main module of the project there should be a <Game Name>.Build.cs file, the constructor of which must contain the following lines:

    @@ -81,7 +81,7 @@ Enable Cpp17

    Try to compile the project to ensure it works as expected before following further steps.

    Note that updating a project to C++17 doesn't necessarily mean that the IDE in use will also start to recognize its syntax.
    If the plan is to use C++17 in the project too, check the specific instructions for the IDE in use.

    -

    +

    EnTT as a third party module

    Once this point is reached, the Source directory should look like this:

    Source
    @@ -115,7 +115,7 @@ EnTT as a third party module
    "Core", "CoreUObject", "Engine", "InputCore", [...], "EnTT"
    });

    Note that some IDEs might require a restart to start recognizing the new module for code-highlighting features and such.

    -

    +

    Include EnTT

    In any source file of the project, add #include "entt.hpp" or any other path to the file from EnTT to use it.
    Try to create a registry as entt::registry registry; to make sure everything compiles fine.

    @@ -123,7 +123,7 @@ Include EnTT
    diff --git a/menudata.js b/menudata.js index ab987a94a..cb15327eb 100644 --- a/menudata.js +++ b/menudata.js @@ -34,6 +34,7 @@ var menudata={children:[ {text:"c",url:"namespacemembers.html#index_c"}, {text:"d",url:"namespacemembers.html#index_d"}, {text:"e",url:"namespacemembers.html#index_e"}, +{text:"f",url:"namespacemembers.html#index_f"}, {text:"g",url:"namespacemembers.html#index_g"}, {text:"h",url:"namespacemembers.html#index_h"}, {text:"i",url:"namespacemembers.html#index_i"}, @@ -50,6 +51,7 @@ var menudata={children:[ {text:"a",url:"namespacemembers_func.html#index_a"}, {text:"b",url:"namespacemembers_func.html#index_b"}, {text:"d",url:"namespacemembers_func.html#index_d"}, +{text:"f",url:"namespacemembers_func.html#index_f"}, {text:"g",url:"namespacemembers_func.html#index_g"}, {text:"i",url:"namespacemembers_func.html#index_i"}, {text:"m",url:"namespacemembers_func.html#index_m"}, diff --git a/meta_2policy_8hpp_source.html b/meta_2policy_8hpp_source.html new file mode 100644 index 000000000..cac4c03f0 --- /dev/null +++ b/meta_2policy_8hpp_source.html @@ -0,0 +1,107 @@ + + + + + + + +EnTT: src/entt/meta/policy.hpp Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    policy.hpp
    +
    +
    +
    1 #ifndef ENTT_META_POLICY_HPP
    +
    2 #define ENTT_META_POLICY_HPP
    +
    3 
    +
    4 
    +
    5 namespace entt {
    +
    6 
    +
    7 
    +
    9 struct as_ref_t {};
    +
    10 
    +
    11 
    +
    13 struct as_cref_t {};
    +
    14 
    +
    15 
    +
    17 struct as_is_t {};
    +
    18 
    +
    19 
    +
    21 struct as_void_t {};
    +
    22 
    +
    23 
    +
    24 }
    +
    25 
    +
    26 
    +
    27 #endif
    +
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    Empty class type used to request the as cref policy.
    Definition: policy.hpp:13
    +
    Empty class type used to request the as-is policy.
    Definition: policy.hpp:17
    +
    Empty class type used to request the as ref policy.
    Definition: policy.hpp:9
    +
    Empty class type used to request the as void policy.
    Definition: policy.hpp:21
    +
    + + + + diff --git a/meta_2type__traits_8hpp_source.html b/meta_2type__traits_8hpp_source.html index b9243d9c5..fd51e384b 100644 --- a/meta_2type__traits_8hpp_source.html +++ b/meta_2type__traits_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/type_traits.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@
    - + @@ -122,18 +122,18 @@ $(function() {
    86 
    87 
    88 #endif
    - -
    entt::is_meta_pointer_like
    Provides the member constant value to true if a given type is a pointer-like type from the point of v...
    Definition: type_traits.hpp:65
    -
    entt::meta_template_traits
    Traits class template to be specialized to enable support for meta template information.
    Definition: type_traits.hpp:16
    -
    entt::is_key_only_meta_associative_container
    Provides the member constant value to true if a meta associative container claims to wrap a key-only ...
    Definition: type_traits.hpp:41
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::is_meta_pointer_like_v
    constexpr auto is_meta_pointer_like_v
    Helper variable template.
    Definition: type_traits.hpp:82
    +
    entt::is_key_only_meta_associative_container_v
    constexpr auto is_key_only_meta_associative_container_v
    Helper variable template.
    Definition: type_traits.hpp:56
    +
    entt::is_key_only_meta_associative_container
    Provides the member constant value to true if a meta associative container claims to wrap a key-only ...
    Definition: type_traits.hpp:41
    +
    entt::is_meta_pointer_like
    Provides the member constant value to true if a given type is a pointer-like type from the point of v...
    Definition: type_traits.hpp:65
    entt::meta_associative_container_traits
    Traits class template to be specialized to enable support for meta associative containers.
    Definition: type_traits.hpp:32
    entt::meta_sequence_container_traits
    Traits class template to be specialized to enable support for meta sequence containers.
    Definition: type_traits.hpp:24
    -
    entt::is_key_only_meta_associative_container_v
    constexpr auto is_key_only_meta_associative_container_v
    Helper variable template.
    Definition: type_traits.hpp:56
    +
    entt::meta_template_traits
    Traits class template to be specialized to enable support for meta template information.
    Definition: type_traits.hpp:16
    + diff --git a/meta_2utility_8hpp_source.html b/meta_2utility_8hpp_source.html index eed1b332a..446d7fdfe 100644 --- a/meta_2utility_8hpp_source.html +++ b/meta_2utility_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/utility.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,236 +74,259 @@ $(function() {
    2 #define ENTT_META_UTILITY_HPP
    3 
    4 
    -
    5 #include <array>
    -
    6 #include <cstddef>
    -
    7 #include <functional>
    -
    8 #include <type_traits>
    -
    9 #include <utility>
    -
    10 #include "../config/config.h"
    -
    11 #include "../core/type_traits.hpp"
    -
    12 #include "meta.hpp"
    -
    13 #include "node.hpp"
    -
    14 #include "policy.hpp"
    +
    5 #include <cstddef>
    +
    6 #include <functional>
    +
    7 #include <type_traits>
    +
    8 #include <utility>
    +
    9 #include "../config/config.h"
    +
    10 #include "../core/type_traits.hpp"
    +
    11 #include "meta.hpp"
    +
    12 #include "node.hpp"
    +
    13 #include "policy.hpp"
    +
    14 
    15 
    -
    16 
    -
    17 namespace entt {
    +
    16 namespace entt {
    +
    17 
    18 
    -
    19 
    -
    21 template<typename, typename>
    -
    22 struct meta_function_descriptor;
    +
    20 template<typename, typename>
    +
    21 struct meta_function_descriptor;
    +
    22 
    23 
    -
    24 
    -
    32 template<typename Type, typename Ret, typename Class, typename... Args>
    -
    33 struct meta_function_descriptor<Type, Ret(Class:: *)(Args...) const> {
    -
    35  using return_type = Ret;
    -
    37  using args_type = std::conditional_t<std::is_same_v<Type, Class>, type_list<Args...>, type_list<const Class &, Args...>>;
    -
    38 
    -
    40  static constexpr auto is_const = true;
    -
    42  static constexpr auto is_static = !std::is_same_v<Type, Class>;
    -
    43 };
    +
    31 template<typename Type, typename Ret, typename Class, typename... Args>
    +
    32 struct meta_function_descriptor<Type, Ret(Class:: *)(Args...) const> {
    +
    34  using return_type = Ret;
    +
    36  using args_type = std::conditional_t<std::is_same_v<Type, Class>, type_list<Args...>, type_list<const Class &, Args...>>;
    +
    37 
    +
    39  static constexpr auto is_const = true;
    +
    41  static constexpr auto is_static = !std::is_same_v<Type, Class>;
    +
    42 };
    +
    43 
    44 
    -
    45 
    -
    53 template<typename Type, typename Ret, typename Class, typename... Args>
    -
    54 struct meta_function_descriptor<Type, Ret(Class:: *)(Args...)> {
    -
    56  using return_type = Ret;
    -
    58  using args_type = std::conditional_t<std::is_same_v<Type, Class>, type_list<Args...>, type_list<Class &, Args...>>;
    -
    59 
    -
    61  static constexpr auto is_const = false;
    -
    63  static constexpr auto is_static = !std::is_same_v<Type, Class>;
    -
    64 };
    +
    52 template<typename Type, typename Ret, typename Class, typename... Args>
    +
    53 struct meta_function_descriptor<Type, Ret(Class:: *)(Args...)> {
    +
    55  using return_type = Ret;
    +
    57  using args_type = std::conditional_t<std::is_same_v<Type, Class>, type_list<Args...>, type_list<Class &, Args...>>;
    +
    58 
    +
    60  static constexpr auto is_const = false;
    +
    62  static constexpr auto is_static = !std::is_same_v<Type, Class>;
    +
    63 };
    +
    64 
    65 
    -
    66 
    -
    73 template<typename Type, typename Ret, typename... Args>
    -
    74 struct meta_function_descriptor<Type, Ret(*)(Args...)> {
    -
    76  using return_type = Ret;
    -
    78  using args_type = type_list<Args...>;
    -
    79 
    -
    81  static constexpr auto is_const = false;
    -
    83  static constexpr auto is_static = true;
    -
    84 };
    +
    72 template<typename Type, typename Ret, typename... Args>
    +
    73 struct meta_function_descriptor<Type, Ret(*)(Args...)> {
    +
    75  using return_type = Ret;
    +
    77  using args_type = type_list<Args...>;
    +
    78 
    +
    80  static constexpr auto is_const = false;
    +
    82  static constexpr auto is_static = true;
    +
    83 };
    +
    84 
    85 
    -
    86 
    -
    96 template<typename Type, typename Candidate>
    -
    97 class meta_function_helper {
    -
    98  template<typename Ret, typename... Args, typename Class>
    -
    99  static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...) const> get_rid_of_noexcept(Ret(Class:: *)(Args...) const);
    -
    100 
    -
    101  template<typename Ret, typename... Args, typename Class>
    -
    102  static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...)> get_rid_of_noexcept(Ret(Class:: *)(Args...));
    -
    103 
    -
    104  template<typename Ret, typename... Args>
    -
    105  static constexpr meta_function_descriptor<Type, Ret(*)(Args...)> get_rid_of_noexcept(Ret(*)(Args...));
    -
    106 
    -
    107 public:
    -
    109  using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()));
    -
    110 };
    +
    95 template<typename Type, typename Candidate>
    +
    96 class meta_function_helper {
    +
    97  template<typename Ret, typename... Args, typename Class>
    +
    98  static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...) const> get_rid_of_noexcept(Ret(Class:: *)(Args...) const);
    +
    99 
    +
    100  template<typename Ret, typename... Args, typename Class>
    +
    101  static constexpr meta_function_descriptor<Type, Ret(Class:: *)(Args...)> get_rid_of_noexcept(Ret(Class:: *)(Args...));
    +
    102 
    +
    103  template<typename Ret, typename... Args>
    +
    104  static constexpr meta_function_descriptor<Type, Ret(*)(Args...)> get_rid_of_noexcept(Ret(*)(Args...));
    +
    105 
    +
    106 public:
    +
    108  using type = decltype(get_rid_of_noexcept(std::declval<Candidate>()));
    +
    109 };
    +
    110 
    111 
    -
    112 
    -
    118 template<typename Type, typename Candidate>
    -
    119 using meta_function_helper_t = typename meta_function_helper<Type, Candidate>::type;
    +
    117 template<typename Type, typename Candidate>
    +
    118 using meta_function_helper_t = typename meta_function_helper<Type, Candidate>::type;
    +
    119 
    120 
    -
    121 
    -
    127 template<typename... Args>
    -
    128 [[nodiscard]] static meta_type meta_arg(type_list<Args...>, const std::size_t index) ENTT_NOEXCEPT {
    -
    129  return internal::meta_arg_node(type_list<Args...>{}, index);
    -
    130 }
    +
    126 template<typename... Args>
    +
    127 [[nodiscard]] static meta_type meta_arg(type_list<Args...>, const std::size_t index) ENTT_NOEXCEPT {
    +
    128  return internal::meta_arg_node(type_list<Args...>{}, index);
    +
    129 }
    +
    130 
    131 
    -
    132 
    -
    141 template<typename Type, typename... Args, std::size_t... Index>
    -
    142 [[nodiscard]] meta_any meta_construct(meta_any * const args, std::index_sequence<Index...>) {
    -
    143  if(((args+Index)->allow_cast<Args>() && ...)) {
    -
    144  return Type{(args+Index)->cast<Args>()...};
    -
    145  }
    -
    146 
    -
    147  return {};
    -
    148 }
    +
    140 template<typename Type, typename... Args, std::size_t... Index>
    +
    141 [[nodiscard]] meta_any meta_construct(meta_any * const args, std::index_sequence<Index...>) {
    +
    142  if(((args+Index)->allow_cast<Args>() && ...)) {
    +
    143  return Type{(args+Index)->cast<Args>()...};
    +
    144  }
    +
    145 
    +
    146  return {};
    +
    147 }
    +
    148 
    149 
    -
    150 
    -
    159 template<typename Type, auto Data>
    -
    160 [[nodiscard]] bool meta_setter([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value) {
    -
    161  if constexpr(!std::is_same_v<decltype(Data), Type> && !std::is_same_v<decltype(Data), std::nullptr_t>) {
    -
    162  if constexpr(std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>> || std::is_member_function_pointer_v<decltype(Data)>) {
    -
    163  using descriptor = meta_function_helper_t<Type, decltype(Data)>;
    -
    164  using data_type = type_list_element_t<!std::is_member_function_pointer_v<decltype(Data)>, typename descriptor::args_type>;
    -
    165 
    -
    166  if(auto * const clazz = instance->try_cast<Type>(); clazz) {
    -
    167  if(value.allow_cast<data_type>()) {
    -
    168  std::invoke(Data, *clazz, value.cast<data_type>());
    -
    169  return true;
    -
    170  }
    -
    171  }
    -
    172  } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    -
    173  using data_type = std::remove_reference_t<decltype(std::declval<Type>().*Data)>;
    -
    174 
    -
    175  if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    -
    176  if(auto * const clazz = instance->try_cast<Type>(); clazz) {
    -
    177  if(value.allow_cast<data_type>()) {
    -
    178  std::invoke(Data, clazz) = value.cast<data_type>();
    -
    179  return true;
    -
    180  }
    -
    181  }
    -
    182  }
    -
    183  } else {
    -
    184  using data_type = std::remove_reference_t<decltype(*Data)>;
    -
    185 
    -
    186  if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    -
    187  if(value.allow_cast<data_type>()) {
    -
    188  *Data = value.cast<data_type>();
    -
    189  return true;
    -
    190  }
    -
    191  }
    -
    192  }
    -
    193  }
    -
    194 
    -
    195  return false;
    -
    196 }
    -
    197 
    +
    158 template<typename Type, auto Data>
    +
    159 [[nodiscard]] bool meta_setter([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value) {
    +
    160  if constexpr(!std::is_same_v<decltype(Data), Type> && !std::is_same_v<decltype(Data), std::nullptr_t>) {
    +
    161  if constexpr(std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    +
    162  using data_type = type_list_element_t<1u, typename meta_function_helper_t<Type, decltype(Data)>::args_type>;
    +
    163 
    +
    164  if(auto * const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    +
    165  Data(*clazz, value.cast<data_type>());
    +
    166  return true;
    +
    167  }
    +
    168  } else if constexpr(std::is_member_function_pointer_v<decltype(Data)>) {
    +
    169  using data_type = type_list_element_t<0u, typename meta_function_helper_t<Type, decltype(Data)>::args_type>;
    +
    170 
    +
    171  if(auto * const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    +
    172  (clazz->*Data)(value.cast<data_type>());
    +
    173  return true;
    +
    174  }
    +
    175  } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    +
    176  using data_type = std::remove_reference_t<decltype(std::declval<Type>().*Data)>;
    +
    177 
    +
    178  if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    +
    179  if(auto * const clazz = instance->try_cast<Type>(); clazz && value.allow_cast<data_type>()) {
    +
    180  clazz->*Data = value.cast<data_type>();
    +
    181  return true;
    +
    182  }
    +
    183  }
    +
    184  } else {
    +
    185  using data_type = std::remove_reference_t<decltype(*Data)>;
    +
    186 
    +
    187  if constexpr(!std::is_array_v<data_type> && !std::is_const_v<data_type>) {
    +
    188  if(value.allow_cast<data_type>()) {
    +
    189  *Data = value.cast<data_type>();
    +
    190  return true;
    +
    191  }
    +
    192  }
    +
    193  }
    +
    194  }
    +
    195 
    +
    196  return false;
    +
    197 }
    198 
    -
    207 template<typename Type, auto Data, typename Policy = as_is_t>
    -
    208 [[nodiscard]] meta_any meta_getter([[maybe_unused]] meta_handle instance) {
    -
    209  [[maybe_unused]] auto dispatch = [](auto &&value) {
    -
    210  if constexpr(std::is_same_v<Policy, as_void_t>) {
    -
    211  return meta_any{std::in_place_type<void>, std::forward<decltype(value)>(value)};
    -
    212  } else if constexpr(std::is_same_v<Policy, as_ref_t>) {
    -
    213  return meta_any{std::reference_wrapper{std::forward<decltype(value)>(value)}};
    -
    214  } else if constexpr(std::is_same_v<Policy, as_cref_t>) {
    -
    215  return meta_any{std::cref(std::forward<decltype(value)>(value))};
    -
    216  } else {
    -
    217  static_assert(std::is_same_v<Policy, as_is_t>, "Policy not supported");
    -
    218  return meta_any{std::forward<decltype(value)>(value)};
    -
    219  }
    -
    220  };
    +
    199 
    +
    207 template<typename Policy = as_is_t, typename Type>
    +
    208 meta_any meta_dispatch(Type &&value) {
    +
    209  if constexpr(std::is_same_v<Policy, as_void_t>) {
    +
    210  return meta_any{std::in_place_type<void>, std::forward<Type>(value)};
    +
    211  } else if constexpr(std::is_same_v<Policy, as_ref_t>) {
    +
    212  return meta_any{std::in_place_type<Type>, std::forward<Type>(value)};
    +
    213  } else if constexpr(std::is_same_v<Policy, as_cref_t>) {
    +
    214  static_assert(std::is_lvalue_reference_v<Type>, "Invalid type");
    +
    215  return meta_any{std::in_place_type<const std::remove_reference_t<Type> &>, std::as_const(value)};
    +
    216  } else {
    +
    217  static_assert(std::is_same_v<Policy, as_is_t>, "Policy not supported");
    +
    218  return meta_any{std::forward<Type>(value)};
    +
    219  }
    +
    220 }
    221 
    -
    222  if constexpr(std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>> || std::is_member_function_pointer_v<decltype(Data)>) {
    -
    223  auto * const clazz = instance->try_cast<std::conditional_t<std::is_invocable_v<decltype(Data), const Type &>, const Type, Type>>();
    -
    224  return clazz ? dispatch(std::invoke(Data, *clazz)) : meta_any{};
    -
    225  } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    -
    226  if constexpr(std::is_array_v<std::remove_cv_t<std::remove_reference_t<decltype(std::declval<Type>().*Data)>>>) {
    -
    227  return meta_any{};
    -
    228  } else {
    -
    229  if(auto * clazz = instance->try_cast<Type>(); clazz) {
    -
    230  return dispatch(std::invoke(Data, *clazz));
    -
    231  } else {
    -
    232  auto * fallback = instance->try_cast<const Type>();
    -
    233  return fallback ? dispatch(std::invoke(Data, *fallback)) : meta_any{};
    -
    234  }
    -
    235  }
    -
    236  } else if constexpr(std::is_pointer_v<decltype(Data)>) {
    -
    237  if constexpr(std::is_array_v<std::remove_pointer_t<decltype(Data)>>) {
    -
    238  return meta_any{};
    -
    239  } else {
    -
    240  return dispatch(*Data);
    -
    241  }
    -
    242  } else {
    -
    243  return dispatch(Data);
    -
    244  }
    -
    245 }
    -
    246 
    +
    222 
    +
    231 template<typename Type, auto Data, typename Policy = as_is_t>
    +
    232 [[nodiscard]] meta_any meta_getter([[maybe_unused]] meta_handle instance) {
    +
    233  if constexpr(std::is_function_v<std::remove_reference_t<std::remove_pointer_t<decltype(Data)>>>) {
    +
    234  auto * const clazz = instance->try_cast<std::conditional_t<std::is_invocable_v<decltype(Data), const Type &>, const Type, Type>>();
    +
    235  return clazz ? meta_dispatch<Policy>(Data(*clazz)) : meta_any{};
    +
    236  } else if constexpr(std::is_member_function_pointer_v<decltype(Data)>) {
    +
    237  auto * const clazz = instance->try_cast<std::conditional_t<std::is_invocable_v<decltype(Data), const Type &>, const Type, Type>>();
    +
    238  return clazz ? meta_dispatch<Policy>((clazz->*Data)()) : meta_any{};
    +
    239  } else if constexpr(std::is_member_object_pointer_v<decltype(Data)>) {
    +
    240  if constexpr(!std::is_array_v<std::remove_cv_t<std::remove_reference_t<decltype(std::declval<Type>().*Data)>>>) {
    +
    241  if(auto * clazz = instance->try_cast<Type>(); clazz) {
    +
    242  return meta_dispatch<Policy>(clazz->*Data);
    +
    243  } else if(auto * fallback = instance->try_cast<const Type>(); fallback) {
    +
    244  return meta_dispatch<Policy>(fallback->*Data);
    +
    245  }
    +
    246  }
    247 
    -
    258 template<typename Type, auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    -
    259 [[nodiscard]] meta_any meta_invoke([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence<Index...>) {
    -
    260  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    -
    261 
    -
    262  auto dispatch = [](auto &&... params) {
    -
    263  if constexpr(std::is_void_v<std::remove_cv_t<typename descriptor::return_type>> || std::is_same_v<Policy, as_void_t>) {
    -
    264  std::invoke(Candidate, std::forward<decltype(params)>(params)...);
    -
    265  return meta_any{std::in_place_type<void>};
    -
    266  } else if constexpr(std::is_same_v<Policy, as_ref_t>) {
    -
    267  return meta_any{std::reference_wrapper{std::invoke(Candidate, std::forward<decltype(params)>(params)...)}};
    -
    268  } else if constexpr(std::is_same_v<Policy, as_cref_t>) {
    -
    269  return meta_any{std::cref(std::invoke(Candidate, std::forward<decltype(params)>(params)...))};
    -
    270  } else {
    -
    271  static_assert(std::is_same_v<Policy, as_is_t>, "Policy not supported");
    -
    272  return meta_any{std::invoke(Candidate, std::forward<decltype(params)>(params)...)};
    -
    273  }
    -
    274  };
    -
    275 
    -
    276  if constexpr(std::is_invocable_v<decltype(Candidate), const Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    -
    277  if(const auto * const clazz = instance->try_cast<const Type>(); clazz && ((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    278  return dispatch(*clazz, (args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    279  }
    -
    280  } else if constexpr(std::is_invocable_v<decltype(Candidate), Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    -
    281  if(auto * const clazz = instance->try_cast<Type>(); clazz && ((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    282  return dispatch(*clazz, (args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    283  }
    -
    284  } else {
    -
    285  if(((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    -
    286  return dispatch((args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    -
    287  }
    -
    288  }
    -
    289 
    -
    290  return meta_any{};
    -
    291 }
    +
    248  return meta_any{};
    +
    249  } else if constexpr(std::is_pointer_v<decltype(Data)>) {
    +
    250  if constexpr(std::is_array_v<std::remove_pointer_t<decltype(Data)>>) {
    +
    251  return meta_any{};
    +
    252  } else {
    +
    253  return meta_dispatch<Policy>(*Data);
    +
    254  }
    +
    255  } else {
    +
    256  return meta_dispatch<Policy>(Data);
    +
    257  }
    +
    258 }
    +
    259 
    +
    260 
    +
    271 template<typename Type, auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    +
    272 [[nodiscard]] std::enable_if_t<!std::is_invocable_v<decltype(Candidate)>, meta_any> meta_invoke([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence<Index...>) {
    +
    273  using descriptor = meta_function_helper_t<Type, decltype(Candidate)>;
    +
    274 
    +
    275  const auto invoke = [](auto &&maybe_clazz, auto &&... other) {
    +
    276  if constexpr(std::is_member_function_pointer_v<decltype(Candidate)>) {
    +
    277  if constexpr(std::is_void_v<typename descriptor::return_type>) {
    +
    278  (std::forward<decltype(maybe_clazz)>(maybe_clazz).*Candidate)(std::forward<decltype(other)>(other)...);
    +
    279  return meta_any{std::in_place_type<void>};
    +
    280  } else {
    +
    281  return meta_dispatch<Policy>((std::forward<decltype(maybe_clazz)>(maybe_clazz).*Candidate)(std::forward<decltype(other)>(other)...));
    +
    282  }
    +
    283  } else {
    +
    284  if constexpr(std::is_void_v<typename descriptor::return_type>) {
    +
    285  Candidate(std::forward<decltype(maybe_clazz)>(maybe_clazz), std::forward<decltype(other)>(other)...);
    +
    286  return meta_any{std::in_place_type<void>};
    +
    287  } else {
    +
    288  return meta_dispatch<Policy>(Candidate(std::forward<decltype(maybe_clazz)>(maybe_clazz), std::forward<decltype(other)>(other)...));
    +
    289  }
    +
    290  }
    +
    291  };
    292 
    -
    293 
    -
    294 }
    -
    295 
    -
    296 
    -
    297 #endif
    - -
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:159
    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    -
    entt::meta_construct
    meta_any meta_construct(meta_any *const args, std::index_sequence< Index... >)
    Constructs an instance given a list of erased parameters, if possible.
    Definition: utility.hpp:142
    -
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:56
    -
    entt::meta_setter
    bool meta_setter([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value)
    Sets the value of a given variable.
    Definition: utility.hpp:160
    -
    entt::meta_getter
    meta_any meta_getter([[maybe_unused]] meta_handle instance)
    Gets the value of a given variable.
    Definition: utility.hpp:208
    -
    entt::meta_function_descriptor
    Primary template isn't defined on purpose.
    Definition: utility.hpp:22
    -
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:170
    -
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >::args_type
    std::conditional_t< std::is_same_v< Type, Class >, type_list< Args... >, type_list< const Class &, Args... > > args_type
    Meta function arguments.
    Definition: utility.hpp:37
    -
    entt::meta_any::try_cast
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:358
    +
    293  if constexpr(std::is_invocable_v<decltype(Candidate), const Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    +
    294  if(const auto * const clazz = instance->try_cast<const Type>(); clazz && ((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    295  return invoke(*clazz, (args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    296  }
    +
    297  } else if constexpr(std::is_invocable_v<decltype(Candidate), Type &, type_list_element_t<Index, typename descriptor::args_type>...>) {
    +
    298  if(auto * const clazz = instance->try_cast<Type>(); clazz && ((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    299  return invoke(*clazz, (args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    300  }
    +
    301  } else {
    +
    302  if(((args+Index)->allow_cast<type_list_element_t<Index, typename descriptor::args_type>>() && ...)) {
    +
    303  return invoke((args+Index)->cast<type_list_element_t<Index, typename descriptor::args_type>>()...);
    +
    304  }
    +
    305  }
    +
    306 
    +
    307  return meta_any{};
    +
    308 }
    +
    309 
    +
    310 
    +
    319 template<typename Type, auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    +
    320 [[nodiscard]] std::enable_if_t<std::is_invocable_v<decltype(Candidate)>, meta_any> meta_invoke(meta_handle, meta_any *, std::index_sequence<Index...>) {
    +
    321  if constexpr(std::is_void_v<decltype(Candidate())>) {
    +
    322  Candidate();
    +
    323  return meta_any{std::in_place_type<void>};
    +
    324  } else {
    +
    325  return meta_dispatch<Policy>(Candidate());
    +
    326  }
    +
    327 }
    +
    328 
    +
    329 
    +
    330 }
    +
    331 
    +
    332 
    +
    333 #endif
    +
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:158
    +
    entt::meta_any::try_cast
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:388
    +
    entt::meta_function_helper
    Meta function helper.
    Definition: utility.hpp:96
    +
    entt::meta_function_helper::type
    decltype(get_rid_of_noexcept(std::declval< Candidate >())) type
    The meta function descriptor of the given function.
    Definition: utility.hpp:108
    +
    entt::meta_type
    Opaque wrapper for types.
    Definition: meta.hpp:1040
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::meta_type
    Opaque wrapper for types.
    Definition: meta.hpp:1003
    -
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:35
    -
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>::args_type
    std::conditional_t< std::is_same_v< Type, Class >, type_list< Args... >, type_list< Class &, Args... > > args_type
    Meta function arguments.
    Definition: utility.hpp:58
    -
    entt::meta_function_helper::type
    decltype(get_rid_of_noexcept(std::declval< Candidate >())) type
    The meta function descriptor of the given function.
    Definition: utility.hpp:109
    -
    entt::meta_invoke
    meta_any meta_invoke([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence< Index... >)
    Invokes a function given a list of erased parameters, if possible.
    Definition: utility.hpp:259
    -
    entt::meta_function_helper_t
    typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
    Helper type.
    Definition: utility.hpp:119
    -
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:588
    -
    entt::meta_function_descriptor< Type, Ret(*)(Args...)>::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:76
    -
    entt::meta_function_helper
    Meta function helper.
    Definition: utility.hpp:97
    +
    entt::meta_construct
    meta_any meta_construct(meta_any *const args, std::index_sequence< Index... >)
    Constructs an instance given a list of erased parameters, if possible.
    Definition: utility.hpp:141
    +
    entt::meta_dispatch
    meta_any meta_dispatch(Type &&value)
    Wraps a value depending on the given policy.
    Definition: utility.hpp:208
    +
    entt::meta_getter
    meta_any meta_getter([[maybe_unused]] meta_handle instance)
    Gets the value of a given variable.
    Definition: utility.hpp:232
    +
    entt::meta_function_helper_t
    typename meta_function_helper< Type, Candidate >::type meta_function_helper_t
    Helper type.
    Definition: utility.hpp:118
    +
    entt::meta_invoke
    std::enable_if_t<!std::is_invocable_v< decltype(Candidate)>, meta_any > meta_invoke([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence< Index... >)
    Invokes a function given a list of erased parameters, if possible.
    Definition: utility.hpp:272
    +
    entt::invoke
    void invoke(basic_registry< Entity > &reg, const Entity entt)
    Helper to create a listener that directly invokes a member function.
    Definition: helper.hpp:129
    +
    entt::type_list_element_t
    typename type_list_element< Index, List >::type type_list_element_t
    Helper type.
    Definition: type_traits.hpp:171
    +
    entt::meta_setter
    bool meta_setter([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value)
    Sets the value of a given variable.
    Definition: utility.hpp:159
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >::args_type
    std::conditional_t< std::is_same_v< Type, Class >, type_list< Args... >, type_list< const Class &, Args... > > args_type
    Meta function arguments.
    Definition: utility.hpp:36
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const >::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:34
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>::args_type
    std::conditional_t< std::is_same_v< Type, Class >, type_list< Args... >, type_list< Class &, Args... > > args_type
    Meta function arguments.
    Definition: utility.hpp:57
    +
    entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)>::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:55
    +
    entt::meta_function_descriptor< Type, Ret(*)(Args...)>::return_type
    Ret return_type
    Meta function return type.
    Definition: utility.hpp:75
    +
    entt::meta_function_descriptor
    Primary template isn't defined on purpose.
    Definition: utility.hpp:21
    +
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:625
    +
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:128
    + diff --git a/meta_8hpp_source.html b/meta_8hpp_source.html index 1e423af80..bdaf85632 100644 --- a/meta_8hpp_source.html +++ b/meta_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/meta.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,1604 +74,1617 @@ $(function() {
    2 #define ENTT_META_META_HPP
    3 
    4 
    -
    5 #include <array>
    -
    6 #include <cstddef>
    -
    7 #include <functional>
    -
    8 #include <iterator>
    -
    9 #include <memory>
    -
    10 #include <type_traits>
    -
    11 #include <utility>
    -
    12 #include "../config/config.h"
    -
    13 #include "../core/any.hpp"
    -
    14 #include "../core/fwd.hpp"
    -
    15 #include "../core/utility.hpp"
    -
    16 #include "../core/type_info.hpp"
    -
    17 #include "../core/type_traits.hpp"
    -
    18 #include "adl_pointer.hpp"
    -
    19 #include "ctx.hpp"
    -
    20 #include "node.hpp"
    -
    21 #include "range.hpp"
    -
    22 #include "type_traits.hpp"
    +
    5 #include <cstddef>
    +
    6 #include <functional>
    +
    7 #include <iterator>
    +
    8 #include <memory>
    +
    9 #include <type_traits>
    +
    10 #include <utility>
    +
    11 #include "../config/config.h"
    +
    12 #include "../core/any.hpp"
    +
    13 #include "../core/fwd.hpp"
    +
    14 #include "../core/utility.hpp"
    +
    15 #include "../core/type_info.hpp"
    +
    16 #include "../core/type_traits.hpp"
    +
    17 #include "adl_pointer.hpp"
    +
    18 #include "ctx.hpp"
    +
    19 #include "node.hpp"
    +
    20 #include "range.hpp"
    +
    21 #include "type_traits.hpp"
    +
    22 
    23 
    -
    24 
    -
    25 namespace entt {
    +
    24 namespace entt {
    +
    25 
    26 
    -
    27 
    -
    28 class meta_any;
    -
    29 class meta_type;
    +
    27 class meta_any;
    +
    28 class meta_type;
    +
    29 
    30 
    -
    31 
    -
    33 class meta_sequence_container {
    -
    34  template<typename>
    -
    35  struct meta_sequence_container_proxy;
    -
    36 
    -
    37  class meta_iterator;
    -
    38 
    -
    39 public:
    -
    41  using size_type = std::size_t;
    -
    43  using iterator = meta_iterator;
    -
    44 
    -
    46  meta_sequence_container() ENTT_NOEXCEPT = default;
    -
    47 
    -
    53  template<typename Type>
    -
    54  meta_sequence_container(std::in_place_type_t<Type>, any instance) ENTT_NOEXCEPT
    -
    55  : value_type_fn{&meta_sequence_container_proxy<Type>::value_type},
    -
    56  size_fn{&meta_sequence_container_proxy<Type>::size},
    -
    57  resize_fn{&meta_sequence_container_proxy<Type>::resize},
    -
    58  clear_fn{&meta_sequence_container_proxy<Type>::clear},
    -
    59  begin_fn{&meta_sequence_container_proxy<Type>::begin},
    -
    60  end_fn{&meta_sequence_container_proxy<Type>::end},
    -
    61  insert_fn{&meta_sequence_container_proxy<Type>::insert},
    -
    62  erase_fn{&meta_sequence_container_proxy<Type>::erase},
    -
    63  get_fn{&meta_sequence_container_proxy<Type>::get},
    -
    64  storage{std::move(instance)}
    -
    65  {}
    -
    66 
    -
    67  [[nodiscard]] inline meta_type value_type() const ENTT_NOEXCEPT;
    -
    68  [[nodiscard]] inline size_type size() const ENTT_NOEXCEPT;
    -
    69  inline bool resize(size_type);
    -
    70  inline bool clear();
    -
    71  [[nodiscard]] inline iterator begin();
    -
    72  [[nodiscard]] inline iterator end();
    -
    73  inline std::pair<iterator, bool> insert(iterator, meta_any);
    -
    74  inline std::pair<iterator, bool> erase(iterator);
    -
    75  [[nodiscard]] inline meta_any operator[](size_type);
    -
    76  [[nodiscard]] inline explicit operator bool() const ENTT_NOEXCEPT;
    -
    77 
    -
    78 private:
    -
    79  meta_type(* value_type_fn)() ENTT_NOEXCEPT = nullptr;
    -
    80  size_type(* size_fn)(const any &) ENTT_NOEXCEPT = nullptr;
    -
    81  bool(* resize_fn)(any &, size_type) = nullptr;
    -
    82  bool(* clear_fn)(any &) = nullptr;
    -
    83  iterator(* begin_fn)(any &) = nullptr;
    -
    84  iterator(* end_fn)(any &) = nullptr;
    -
    85  std::pair<iterator, bool>(* insert_fn)(any &, iterator, meta_any &) = nullptr;
    -
    86  std::pair<iterator, bool>(* erase_fn)(any &, iterator) = nullptr;
    -
    87  meta_any(* get_fn)(any &, size_type) = nullptr;
    -
    88  any storage{};
    -
    89 };
    +
    32 class meta_sequence_container {
    +
    33  template<typename>
    +
    34  struct meta_sequence_container_proxy;
    +
    35 
    +
    36  class meta_iterator;
    +
    37 
    +
    38 public:
    +
    40  using size_type = std::size_t;
    +
    42  using iterator = meta_iterator;
    +
    43 
    +
    45  meta_sequence_container() ENTT_NOEXCEPT = default;
    +
    46 
    +
    52  template<typename Type>
    +
    53  meta_sequence_container(std::in_place_type_t<Type>, any instance) ENTT_NOEXCEPT
    +
    54  : value_type_fn{&meta_sequence_container_proxy<Type>::value_type},
    +
    55  size_fn{&meta_sequence_container_proxy<Type>::size},
    +
    56  resize_fn{&meta_sequence_container_proxy<Type>::resize},
    +
    57  clear_fn{&meta_sequence_container_proxy<Type>::clear},
    +
    58  begin_fn{&meta_sequence_container_proxy<Type>::begin},
    +
    59  end_fn{&meta_sequence_container_proxy<Type>::end},
    +
    60  insert_fn{&meta_sequence_container_proxy<Type>::insert},
    +
    61  erase_fn{&meta_sequence_container_proxy<Type>::erase},
    +
    62  get_fn{&meta_sequence_container_proxy<Type>::get},
    +
    63  storage{std::move(instance)}
    +
    64  {}
    +
    65 
    +
    66  [[nodiscard]] inline meta_type value_type() const ENTT_NOEXCEPT;
    +
    67  [[nodiscard]] inline size_type size() const ENTT_NOEXCEPT;
    +
    68  inline bool resize(size_type);
    +
    69  inline bool clear();
    +
    70  [[nodiscard]] inline iterator begin();
    +
    71  [[nodiscard]] inline iterator end();
    +
    72  inline std::pair<iterator, bool> insert(iterator, meta_any);
    +
    73  inline std::pair<iterator, bool> erase(iterator);
    +
    74  [[nodiscard]] inline meta_any operator[](size_type);
    +
    75  [[nodiscard]] inline explicit operator bool() const ENTT_NOEXCEPT;
    +
    76 
    +
    77 private:
    +
    78  meta_type(* value_type_fn)() ENTT_NOEXCEPT = nullptr;
    +
    79  size_type(* size_fn)(const any &) ENTT_NOEXCEPT = nullptr;
    +
    80  bool(* resize_fn)(any &, size_type) = nullptr;
    +
    81  bool(* clear_fn)(any &) = nullptr;
    +
    82  iterator(* begin_fn)(any &) = nullptr;
    +
    83  iterator(* end_fn)(any &) = nullptr;
    +
    84  std::pair<iterator, bool>(* insert_fn)(any &, iterator, meta_any &) = nullptr;
    +
    85  std::pair<iterator, bool>(* erase_fn)(any &, iterator) = nullptr;
    +
    86  meta_any(* get_fn)(any &, size_type) = nullptr;
    +
    87  any storage{};
    +
    88 };
    +
    89 
    90 
    -
    91 
    -
    93 class meta_associative_container {
    -
    94  template<typename>
    -
    95  struct meta_associative_container_proxy;
    -
    96 
    -
    97  class meta_iterator;
    -
    98 
    -
    99 public:
    -
    101  using size_type = std::size_t;
    -
    103  using iterator = meta_iterator;
    -
    104 
    -
    106  meta_associative_container() ENTT_NOEXCEPT = default;
    -
    107 
    -
    113  template<typename Type>
    -
    114  meta_associative_container(std::in_place_type_t<Type>, any instance) ENTT_NOEXCEPT
    -
    115  : key_only_container{is_key_only_meta_associative_container_v<Type>},
    -
    116  key_type_fn{&meta_associative_container_proxy<Type>::key_type},
    -
    117  mapped_type_fn{&meta_associative_container_proxy<Type>::mapped_type},
    -
    118  value_type_fn{&meta_associative_container_proxy<Type>::value_type},
    -
    119  size_fn{&meta_associative_container_proxy<Type>::size},
    -
    120  clear_fn{&meta_associative_container_proxy<Type>::clear},
    -
    121  begin_fn{&meta_associative_container_proxy<Type>::begin},
    -
    122  end_fn{&meta_associative_container_proxy<Type>::end},
    -
    123  insert_fn{&meta_associative_container_proxy<Type>::insert},
    -
    124  erase_fn{&meta_associative_container_proxy<Type>::erase},
    -
    125  find_fn{&meta_associative_container_proxy<Type>::find},
    -
    126  storage{std::move(instance)}
    -
    127  {}
    -
    128 
    -
    129  [[nodiscard]] inline bool key_only() const ENTT_NOEXCEPT;
    -
    130  [[nodiscard]] inline meta_type key_type() const ENTT_NOEXCEPT;
    -
    131  [[nodiscard]] inline meta_type mapped_type() const ENTT_NOEXCEPT;
    -
    132  [[nodiscard]] inline meta_type value_type() const ENTT_NOEXCEPT;
    -
    133  [[nodiscard]] inline size_type size() const ENTT_NOEXCEPT;
    -
    134  inline bool clear();
    -
    135  [[nodiscard]] inline iterator begin();
    -
    136  [[nodiscard]] inline iterator end();
    -
    137  inline bool insert(meta_any, meta_any);
    -
    138  inline bool erase(meta_any);
    -
    139  [[nodiscard]] inline iterator find(meta_any);
    -
    140  [[nodiscard]] inline explicit operator bool() const ENTT_NOEXCEPT;
    -
    141 
    -
    142 private:
    -
    143  bool key_only_container{};
    -
    144  meta_type(* key_type_fn)() ENTT_NOEXCEPT = nullptr;
    -
    145  meta_type(* mapped_type_fn)() ENTT_NOEXCEPT = nullptr;
    -
    146  meta_type(* value_type_fn)() ENTT_NOEXCEPT = nullptr;
    -
    147  size_type(* size_fn)(const any &) ENTT_NOEXCEPT = nullptr;
    -
    148  bool(* clear_fn)(any &) = nullptr;
    -
    149  iterator(* begin_fn)(any &) = nullptr;
    -
    150  iterator(* end_fn)(any &) = nullptr;
    -
    151  bool(* insert_fn)(any &, meta_any &, meta_any &) = nullptr;
    -
    152  bool(* erase_fn)(any &, meta_any &) = nullptr;
    -
    153  iterator(* find_fn)(any &, meta_any &) = nullptr;
    -
    154  any storage{};
    -
    155 };
    +
    92 class meta_associative_container {
    +
    93  template<typename>
    +
    94  struct meta_associative_container_proxy;
    +
    95 
    +
    96  class meta_iterator;
    +
    97 
    +
    98 public:
    +
    100  using size_type = std::size_t;
    +
    102  using iterator = meta_iterator;
    +
    103 
    +
    105  meta_associative_container() ENTT_NOEXCEPT = default;
    +
    106 
    +
    112  template<typename Type>
    +
    113  meta_associative_container(std::in_place_type_t<Type>, any instance) ENTT_NOEXCEPT
    +
    114  : key_only_container{is_key_only_meta_associative_container_v<Type>},
    +
    115  key_type_fn{&meta_associative_container_proxy<Type>::key_type},
    +
    116  mapped_type_fn{&meta_associative_container_proxy<Type>::mapped_type},
    +
    117  value_type_fn{&meta_associative_container_proxy<Type>::value_type},
    +
    118  size_fn{&meta_associative_container_proxy<Type>::size},
    +
    119  clear_fn{&meta_associative_container_proxy<Type>::clear},
    +
    120  begin_fn{&meta_associative_container_proxy<Type>::begin},
    +
    121  end_fn{&meta_associative_container_proxy<Type>::end},
    +
    122  insert_fn{&meta_associative_container_proxy<Type>::insert},
    +
    123  erase_fn{&meta_associative_container_proxy<Type>::erase},
    +
    124  find_fn{&meta_associative_container_proxy<Type>::find},
    +
    125  storage{std::move(instance)}
    +
    126  {}
    +
    127 
    +
    128  [[nodiscard]] inline bool key_only() const ENTT_NOEXCEPT;
    +
    129  [[nodiscard]] inline meta_type key_type() const ENTT_NOEXCEPT;
    +
    130  [[nodiscard]] inline meta_type mapped_type() const ENTT_NOEXCEPT;
    +
    131  [[nodiscard]] inline meta_type value_type() const ENTT_NOEXCEPT;
    +
    132  [[nodiscard]] inline size_type size() const ENTT_NOEXCEPT;
    +
    133  inline bool clear();
    +
    134  [[nodiscard]] inline iterator begin();
    +
    135  [[nodiscard]] inline iterator end();
    +
    136  inline bool insert(meta_any, meta_any);
    +
    137  inline bool erase(meta_any);
    +
    138  [[nodiscard]] inline iterator find(meta_any);
    +
    139  [[nodiscard]] inline explicit operator bool() const ENTT_NOEXCEPT;
    +
    140 
    +
    141 private:
    +
    142  bool key_only_container{};
    +
    143  meta_type(* key_type_fn)() ENTT_NOEXCEPT = nullptr;
    +
    144  meta_type(* mapped_type_fn)() ENTT_NOEXCEPT = nullptr;
    +
    145  meta_type(* value_type_fn)() ENTT_NOEXCEPT = nullptr;
    +
    146  size_type(* size_fn)(const any &) ENTT_NOEXCEPT = nullptr;
    +
    147  bool(* clear_fn)(any &) = nullptr;
    +
    148  iterator(* begin_fn)(any &) = nullptr;
    +
    149  iterator(* end_fn)(any &) = nullptr;
    +
    150  bool(* insert_fn)(any &, meta_any &, meta_any &) = nullptr;
    +
    151  bool(* erase_fn)(any &, meta_any &) = nullptr;
    +
    152  iterator(* find_fn)(any &, meta_any &) = nullptr;
    +
    153  any storage{};
    +
    154 };
    +
    155 
    156 
    -
    157 
    -
    159 class meta_any {
    -
    160  enum class operation { DTOR, REF, CREF, DEREF, CDEREF, SEQ, CSEQ, ASSOC, CASSOC };
    -
    161 
    -
    162  using vtable_type = void(const operation, const any &, void *);
    -
    163 
    -
    164  template<typename Type>
    -
    165  static void basic_vtable(const operation op, [[maybe_unused]] const any &from, [[maybe_unused]] void *to) {
    -
    166  if constexpr(!std::is_void_v<Type>) {
    -
    167  using base_type = std::remove_const_t<std::remove_reference_t<Type>>;
    -
    168 
    -
    169  switch(op) {
    -
    170  case operation::DTOR:
    -
    171  if constexpr(!std::is_lvalue_reference_v<Type>) {
    -
    172  if(auto *curr = static_cast<internal::meta_type_node *>(to); curr->dtor) {
    -
    173  curr->dtor(const_cast<any &>(from).data());
    -
    174  }
    -
    175  }
    -
    176  break;
    -
    177  case operation::REF:
    -
    178  case operation::CREF:
    -
    179  *static_cast<meta_any *>(to) = (op == operation::REF ? meta_any{std::ref(any_cast<Type &>(const_cast<any &>(from)))} : meta_any{std::cref(any_cast<const base_type &>(from))});
    -
    180  break;
    -
    181  case operation::DEREF:
    -
    182  case operation::CDEREF:
    -
    183  if constexpr(is_meta_pointer_like_v<base_type>) {
    -
    184  // for some reason vs2017 doesn't compile when using alias declarations with pointer_traits to get the element type
    -
    185  using element_type = std::remove_const_t<typename std::pointer_traits<std::remove_const_t<std::remove_reference_t<Type>>>::element_type>;
    -
    186 
    -
    187  if constexpr(std::is_function_v<element_type>) {
    -
    188  *static_cast<meta_any *>(to) = any_cast<base_type>(from);
    -
    189  } else if constexpr(!std::is_same_v<element_type, void>) {
    -
    190  // for some reason vs2017 doesn't compile when using alias declarations with adl_meta_pointer_like
    -
    191  using adl_meta_pointer_like_type = adl_meta_pointer_like<std::remove_const_t<std::remove_reference_t<Type>>>;
    -
    192 
    -
    193  if constexpr(std::is_lvalue_reference_v<decltype(adl_meta_pointer_like_type::dereference(std::declval<const base_type &>()))>) {
    -
    194  auto &&obj = adl_meta_pointer_like_type::dereference(any_cast<const base_type &>(from));
    -
    195  *static_cast<meta_any *>(to) = (op == operation::DEREF ? meta_any{std::ref(obj)} : meta_any{std::cref(obj)});
    -
    196  } else {
    -
    197  *static_cast<meta_any *>(to) = adl_meta_pointer_like_type::dereference(any_cast<const base_type &>(from));
    -
    198  }
    -
    199  }
    -
    200  }
    -
    201  break;
    -
    202  case operation::SEQ:
    -
    203  case operation::CSEQ:
    -
    204  if constexpr(is_complete_v<meta_sequence_container_traits<base_type>>) {
    -
    205  *static_cast<meta_sequence_container *>(to) = { std::in_place_type<base_type>, (op == operation::SEQ ? const_cast<any &>(from).as_ref() : from.as_ref()) };
    -
    206  }
    -
    207  break;
    -
    208  case operation::ASSOC:
    -
    209  case operation::CASSOC:
    -
    210  if constexpr(is_complete_v<meta_associative_container_traits<base_type>>) {
    -
    211  *static_cast<meta_associative_container *>(to) = { std::in_place_type<base_type>, (op == operation::ASSOC ? const_cast<any &>(from).as_ref() : from.as_ref()) };
    -
    212  }
    -
    213  break;
    -
    214  }
    -
    215  }
    -
    216  }
    -
    217 
    -
    218 public:
    -
    220  meta_any() ENTT_NOEXCEPT
    -
    221  : storage{},
    -
    222  node{},
    -
    223  vtable{&basic_vtable<void>}
    +
    158 class meta_any {
    +
    159  enum class operation { DTOR, DEREF, SEQ, ASSOC };
    +
    160 
    +
    161  using vtable_type = void(const operation, const any &, void *);
    +
    162 
    +
    163  template<typename Type>
    +
    164  static void basic_vtable([[maybe_unused]] const operation op, [[maybe_unused]] const any &from, [[maybe_unused]] void *to) {
    +
    165  static_assert(std::is_same_v<std::remove_reference_t<std::remove_const_t<Type>>, Type>, "Invalid type");
    +
    166 
    +
    167  if constexpr(!std::is_void_v<Type>) {
    +
    168  switch(op) {
    +
    169  case operation::DTOR:
    +
    170  if(auto *curr = static_cast<internal::meta_type_node *>(to); curr->dtor && from.owner()) {
    +
    171  curr->dtor(const_cast<any &>(from).data());
    +
    172  }
    +
    173  break;
    +
    174  case operation::DEREF:
    +
    175  if constexpr(is_meta_pointer_like_v<Type>) {
    +
    176  using element_type = std::remove_const_t<typename std::pointer_traits<Type>::element_type>;
    +
    177 
    +
    178  if constexpr(std::is_function_v<element_type>) {
    +
    179  *static_cast<meta_any *>(to) = any_cast<Type>(from);
    +
    180  } else if constexpr(!std::is_same_v<std::remove_const_t<typename std::pointer_traits<Type>::element_type>, void>) {
    +
    181  using in_place_type = decltype(adl_meta_pointer_like<Type>::dereference(any_cast<const Type &>(from)));
    +
    182  static_cast<meta_any *>(to)->emplace<in_place_type>(adl_meta_pointer_like<Type>::dereference(any_cast<const Type &>(from)));
    +
    183  }
    +
    184  }
    +
    185  case operation::SEQ:
    +
    186  if constexpr(is_complete_v<meta_sequence_container_traits<Type>>) {
    +
    187  *static_cast<meta_sequence_container *>(to) = { std::in_place_type<Type>, std::move(const_cast<any &>(from)) };
    +
    188  }
    +
    189  break;
    +
    190  case operation::ASSOC:
    +
    191  if constexpr(is_complete_v<meta_associative_container_traits<Type>>) {
    +
    192  *static_cast<meta_associative_container *>(to) = { std::in_place_type<Type>, std::move(const_cast<any &>(from)) };
    +
    193  }
    +
    194  break;
    +
    195  }
    +
    196  }
    +
    197  }
    +
    198 
    +
    199  meta_any(const meta_any &other, any ref) ENTT_NOEXCEPT
    +
    200  : storage{std::move(ref)},
    +
    201  node{storage ? other.node : nullptr},
    +
    202  vtable{storage ? other.vtable : &basic_vtable<void>}
    +
    203  {}
    +
    204 
    +
    205 public:
    +
    207  meta_any() ENTT_NOEXCEPT
    +
    208  : storage{},
    +
    209  node{},
    +
    210  vtable{&basic_vtable<void>}
    +
    211  {}
    +
    212 
    +
    219  template<typename Type, typename... Args>
    +
    220  explicit meta_any(std::in_place_type_t<Type>, Args &&... args)
    +
    221  : storage{std::in_place_type<Type>, std::forward<Args>(args)...},
    +
    222  node{internal::meta_info<Type>::resolve()},
    +
    223  vtable{&basic_vtable<std::remove_const_t<std::remove_reference_t<Type>>>}
    224  {}
    225 
    -
    232  template<typename Type, typename... Args>
    -
    233  explicit meta_any(std::in_place_type_t<Type>, Args &&... args)
    -
    234  : storage(std::in_place_type<Type>, std::forward<Args>(args)...),
    -
    235  node{internal::meta_info<Type>::resolve()},
    -
    236  vtable{&basic_vtable<Type>}
    -
    237  {}
    +
    231  template<typename Type>
    +
    232  meta_any(std::reference_wrapper<Type> value)
    +
    233  : meta_any{}
    +
    234  {
    +
    235  // invokes deprecated assignment operator (and avoids issues with vs2017)
    +
    236  *this = value;
    +
    237  }
    238 
    -
    244  template<typename Type>
    -
    245  meta_any(std::reference_wrapper<Type> value)
    -
    246  : meta_any{std::in_place_type<Type &>, value.get()}
    -
    247  {}
    -
    248 
    -
    254  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_any>>>
    -
    255  meta_any(Type &&value)
    -
    256  : meta_any{std::in_place_type<std::remove_cv_t<std::remove_reference_t<Type>>>, std::forward<Type>(value)}
    -
    257  {}
    -
    258 
    -
    263  meta_any(const meta_any &other) = default;
    -
    264 
    -
    269  meta_any(meta_any &&other) ENTT_NOEXCEPT
    -
    270  : meta_any{}
    -
    271  {
    -
    272  swap(*this, other);
    -
    273  }
    -
    274 
    -
    276  ~meta_any() {
    -
    277  if(vtable) {
    -
    278  vtable(operation::DTOR, storage, node);
    -
    279  }
    -
    280  }
    -
    281 
    -
    287  meta_any & operator=(meta_any other) {
    -
    288  swap(other, *this);
    -
    289  return *this;
    -
    290  }
    -
    291 
    -
    296  [[nodiscard]] inline meta_type type() const ENTT_NOEXCEPT;
    -
    297 
    -
    302  [[nodiscard]] const void * data() const ENTT_NOEXCEPT {
    -
    303  return storage.data();
    -
    304  }
    -
    305 
    -
    307  [[nodiscard]] void * data() ENTT_NOEXCEPT {
    -
    308  return storage.data();
    -
    309  }
    -
    310 
    -
    321  template<typename... Args>
    -
    322  meta_any invoke(const id_type id, Args &&... args) const;
    -
    323 
    -
    325  template<typename... Args>
    -
    326  meta_any invoke(const id_type id, Args &&... args);
    +
    244  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>>>
    +
    245  meta_any(Type &&value)
    +
    246  : storage{std::forward<Type>(value)},
    +
    247  node{internal::meta_info<std::decay_t<Type>>::resolve()},
    +
    248  vtable{&basic_vtable<std::decay_t<Type>>}
    +
    249  {}
    +
    250 
    +
    255  meta_any(const meta_any &other) = default;
    +
    256 
    +
    261  meta_any(meta_any &&other) ENTT_NOEXCEPT
    +
    262  : storage{std::move(other.storage)},
    +
    263  node{std::exchange(other.node, nullptr)},
    +
    264  vtable{std::exchange(other.vtable, &basic_vtable<void>)}
    +
    265  {}
    +
    266 
    +
    268  ~meta_any() {
    +
    269  vtable(operation::DTOR, storage, node);
    +
    270  }
    +
    271 
    +
    277  meta_any & operator=(const meta_any &other) {
    +
    278  std::exchange(vtable, other.vtable)(operation::DTOR, storage, node);
    +
    279  storage = other.storage;
    +
    280  node = other.node;
    +
    281  return *this;
    +
    282  }
    +
    283 
    +
    289  meta_any & operator=(meta_any &&other) ENTT_NOEXCEPT {
    +
    290  std::exchange(vtable, std::exchange(other.vtable, &basic_vtable<void>))(operation::DTOR, storage, node);
    +
    291  storage = std::move(other.storage);
    +
    292  node = std::exchange(other.node, nullptr);
    +
    293  return *this;
    +
    294  }
    +
    295 
    +
    302  template<typename Type>
    +
    303  [[deprecated("Use std::in_place_type<T &>, entt::make_meta<T &>, emplace<Type &> or forward_as_meta instead")]]
    +
    304  meta_any & operator=(std::reference_wrapper<Type> value) {
    +
    305  emplace<Type &>(value.get());
    +
    306  return *this;
    +
    307  }
    +
    308 
    +
    315  template<typename Type>
    +
    316  std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_any>, meta_any &>
    +
    317  operator=(Type &&value) {
    +
    318  emplace<std::decay_t<Type>>(std::forward<Type>(value));
    +
    319  return *this;
    +
    320  }
    +
    321 
    +
    326  [[nodiscard]] inline meta_type type() const ENTT_NOEXCEPT;
    327 
    -
    339  template<typename Type>
    -
    340  bool set(const id_type id, Type &&value);
    -
    341 
    -
    347  [[nodiscard]] meta_any get(const id_type id) const;
    -
    348 
    -
    350  [[nodiscard]] meta_any get(const id_type id);
    -
    351 
    -
    357  template<typename Type>
    -
    358  [[nodiscard]] const Type * try_cast() const {
    -
    359  if(node) {
    -
    360  if(const auto info = type_id<Type>(); node->info == info) {
    -
    361  return any_cast<Type>(&storage);
    -
    362  } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
    -
    363  return static_cast<const Type *>(base->cast(storage.data()));
    -
    364  }
    -
    365  }
    -
    366 
    -
    367  return nullptr;
    -
    368  }
    -
    369 
    -
    371  template<typename Type>
    -
    372  [[nodiscard]] Type * try_cast() {
    -
    373  if(node) {
    -
    374  if(const auto info = type_id<Type>(); node->info == info) {
    -
    375  return any_cast<Type>(&storage);
    -
    376  } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
    -
    377  return static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(base->cast(static_cast<constness_as_t<any, Type> &>(storage).data())));
    -
    378  }
    -
    379  }
    -
    380 
    -
    381  return nullptr;
    -
    382  }
    -
    383 
    -
    395  template<typename Type>
    -
    396  [[nodiscard]] Type cast() const {
    -
    397  auto * const actual = try_cast<std::remove_reference_t<Type>>();
    -
    398  ENTT_ASSERT(actual);
    -
    399  return static_cast<Type>(*actual);
    -
    400  }
    -
    401 
    -
    403  template<typename Type>
    -
    404  [[nodiscard]] Type cast() {
    -
    405  // forces const on non-reference types to make them work also with wrappers for const references
    -
    406  auto * const actual = try_cast<std::conditional_t<std::is_reference_v<Type>, std::remove_reference_t<Type>, const Type>>();
    -
    407  ENTT_ASSERT(actual);
    -
    408  return static_cast<Type>(*actual);
    -
    409  }
    +
    332  [[nodiscard]] const void * data() const ENTT_NOEXCEPT {
    +
    333  return storage.data();
    +
    334  }
    +
    335 
    +
    337  [[nodiscard]] void * data() ENTT_NOEXCEPT {
    +
    338  return storage.data();
    +
    339  }
    +
    340 
    +
    351  template<typename... Args>
    +
    352  meta_any invoke(const id_type id, Args &&... args) const;
    +
    353 
    +
    355  template<typename... Args>
    +
    356  meta_any invoke(const id_type id, Args &&... args);
    +
    357 
    +
    369  template<typename Type>
    +
    370  bool set(const id_type id, Type &&value);
    +
    371 
    +
    377  [[nodiscard]] meta_any get(const id_type id) const;
    +
    378 
    +
    380  [[nodiscard]] meta_any get(const id_type id);
    +
    381 
    +
    387  template<typename Type>
    +
    388  [[nodiscard]] const Type * try_cast() const {
    +
    389  if(node) {
    +
    390  if(const auto info = type_id<Type>(); node->info == info) {
    +
    391  return any_cast<Type>(&storage);
    +
    392  } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
    +
    393  return static_cast<const Type *>(base->cast(storage.data()));
    +
    394  }
    +
    395  }
    +
    396 
    +
    397  return nullptr;
    +
    398  }
    +
    399 
    +
    401  template<typename Type>
    +
    402  [[nodiscard]] Type * try_cast() {
    +
    403  if(node) {
    +
    404  if(const auto info = type_id<Type>(); node->info == info) {
    +
    405  return any_cast<Type>(&storage);
    +
    406  } else if(const auto *base = internal::meta_visit<&internal::meta_type_node::base>([info](const auto *curr) { return curr->type()->info == info; }, node); base) {
    +
    407  return static_cast<Type *>(const_cast<constness_as_t<void, Type> *>(base->cast(static_cast<constness_as_t<any, Type> &>(storage).data())));
    +
    408  }
    +
    409  }
    410 
    -
    417  template<typename Type>
    -
    418  [[nodiscard]] meta_any allow_cast() const {
    -
    419  if(try_cast<std::remove_reference_t<Type>>() != nullptr) {
    -
    420  return as_ref();
    -
    421  } else if(node) {
    -
    422  if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
    -
    423  return conv->conv(storage.data());
    -
    424  }
    -
    425  }
    -
    426 
    -
    427  return {};
    -
    428  }
    -
    429 
    -
    435  template<typename Type>
    -
    436  bool allow_cast() {
    -
    437  if(try_cast<std::conditional_t<std::is_reference_v<Type>, std::remove_reference_t<Type>, const Type>>() != nullptr) {
    -
    438  return true;
    -
    439  } else if(node) {
    -
    440  if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
    -
    441  *this = conv->conv(std::as_const(storage).data());
    -
    442  return true;
    -
    443  }
    -
    444  }
    -
    445 
    -
    446  return false;
    -
    447  }
    -
    448 
    -
    455  template<typename Type, typename... Args>
    -
    456  void emplace(Args &&... args) {
    -
    457  *this = meta_any{std::in_place_type<Type>, std::forward<Args>(args)...};
    +
    411  return nullptr;
    +
    412  }
    +
    413 
    +
    425  template<typename Type>
    +
    426  [[nodiscard]] Type cast() const {
    +
    427  auto * const instance = try_cast<std::remove_reference_t<Type>>();
    +
    428  ENTT_ASSERT(instance, "Invalid instance");
    +
    429  return static_cast<Type>(*instance);
    +
    430  }
    +
    431 
    +
    433  template<typename Type>
    +
    434  [[nodiscard]] Type cast() {
    +
    435  // forces const on non-reference types to make them work also with wrappers for const references
    +
    436  auto * const instance = try_cast<std::remove_reference_t<const Type>>();
    +
    437  ENTT_ASSERT(instance, "Invalid instance");
    +
    438  return static_cast<Type>(*instance);
    +
    439  }
    +
    440 
    +
    447  template<typename Type>
    +
    448  [[nodiscard]] meta_any allow_cast() const {
    +
    449  if(try_cast<std::remove_reference_t<Type>>() != nullptr) {
    +
    450  return as_ref();
    +
    451  } else if(node) {
    +
    452  if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
    +
    453  return conv->conv(storage.data());
    +
    454  }
    +
    455  }
    +
    456 
    +
    457  return {};
    458  }
    459 
    -
    461  void reset() {
    -
    462  *this = meta_any{};
    -
    463  }
    -
    464 
    -
    469  [[nodiscard]] meta_sequence_container as_sequence_container() ENTT_NOEXCEPT {
    -
    470  meta_sequence_container proxy;
    -
    471  vtable(operation::SEQ, storage, &proxy);
    -
    472  return proxy;
    -
    473  }
    -
    474 
    -
    476  [[nodiscard]] meta_sequence_container as_sequence_container() const ENTT_NOEXCEPT {
    -
    477  meta_sequence_container proxy;
    -
    478  vtable(operation::CSEQ, storage, &proxy);
    -
    479  return proxy;
    -
    480  }
    -
    481 
    -
    486  [[nodiscard]] meta_associative_container as_associative_container() ENTT_NOEXCEPT {
    -
    487  meta_associative_container proxy;
    -
    488  vtable(operation::ASSOC, storage, &proxy);
    -
    489  return proxy;
    -
    490  }
    -
    491 
    -
    493  [[nodiscard]] meta_associative_container as_associative_container() const ENTT_NOEXCEPT {
    -
    494  meta_associative_container proxy;
    -
    495  vtable(operation::CASSOC, storage, &proxy);
    -
    496  return proxy;
    -
    497  }
    -
    498 
    -
    504  [[nodiscard]] meta_any operator*() ENTT_NOEXCEPT {
    -
    505  meta_any ret{};
    -
    506  vtable(operation::DEREF, storage, &ret);
    -
    507  return ret;
    +
    465  template<typename Type>
    +
    466  bool allow_cast() {
    +
    467  // forces const on non-reference types to make them work also with wrappers for const references
    +
    468  if(try_cast<std::remove_reference_t<const Type>>() != nullptr) {
    +
    469  return true;
    +
    470  } else if(node) {
    +
    471  if(const auto * const conv = internal::meta_visit<&internal::meta_type_node::conv>([info = type_id<Type>()](const auto *curr) { return curr->type()->info == info; }, node); conv) {
    +
    472  *this = conv->conv(std::as_const(storage).data());
    +
    473  return true;
    +
    474  }
    +
    475  }
    +
    476 
    +
    477  return false;
    +
    478  }
    +
    479 
    +
    486  template<typename Type, typename... Args>
    +
    487  void emplace(Args &&... args) {
    +
    488  std::exchange(vtable, &basic_vtable<std::remove_const_t<std::remove_reference_t<Type>>>)(operation::DTOR, storage, node);
    +
    489  storage.emplace<Type>(std::forward<Args>(args)...);
    +
    490  node = internal::meta_info<Type>::resolve();
    +
    491  }
    +
    492 
    +
    494  void reset() {
    +
    495  std::exchange(vtable, &basic_vtable<void>)(operation::DTOR, storage, node);
    +
    496  storage.reset();
    +
    497  node = nullptr;
    +
    498  }
    +
    499 
    +
    504  [[nodiscard]] meta_sequence_container as_sequence_container() ENTT_NOEXCEPT {
    +
    505  meta_sequence_container proxy;
    +
    506  vtable(operation::SEQ, storage.as_ref(), &proxy);
    +
    507  return proxy;
    508  }
    509 
    -
    511  [[nodiscard]] meta_any operator*() const ENTT_NOEXCEPT {
    -
    512  meta_any ret{};
    -
    513  vtable(operation::CDEREF, storage, &ret);
    -
    514  return ret;
    +
    511  [[nodiscard]] meta_sequence_container as_sequence_container() const ENTT_NOEXCEPT {
    +
    512  meta_sequence_container proxy;
    +
    513  vtable(operation::SEQ, storage.as_ref(), &proxy);
    +
    514  return proxy;
    515  }
    516 
    -
    521  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    522  return !(node == nullptr);
    -
    523  }
    -
    524 
    -
    530  [[nodiscard]] bool operator==(const meta_any &other) const {
    -
    531  return (!node && !other.node) || (node && other.node && node->info == other.node->info && storage == other.storage);
    +
    521  [[nodiscard]] meta_associative_container as_associative_container() ENTT_NOEXCEPT {
    +
    522  meta_associative_container proxy;
    +
    523  vtable(operation::ASSOC, storage.as_ref(), &proxy);
    +
    524  return proxy;
    +
    525  }
    +
    526 
    +
    528  [[nodiscard]] meta_associative_container as_associative_container() const ENTT_NOEXCEPT {
    +
    529  meta_associative_container proxy;
    +
    530  vtable(operation::ASSOC, storage.as_ref(), &proxy);
    +
    531  return proxy;
    532  }
    533 
    -
    539  friend void swap(meta_any &lhs, meta_any &rhs) {
    -
    540  using std::swap;
    -
    541  swap(lhs.storage, rhs.storage);
    -
    542  swap(lhs.vtable, rhs.vtable);
    -
    543  swap(lhs.node, rhs.node);
    -
    544  }
    -
    545 
    -
    550  [[nodiscard]] meta_any as_ref() ENTT_NOEXCEPT {
    -
    551  meta_any ref{};
    -
    552  vtable(operation::REF, storage, &ref);
    -
    553  return ref;
    -
    554  }
    -
    555 
    -
    557  [[nodiscard]] meta_any as_ref() const ENTT_NOEXCEPT {
    -
    558  meta_any ref{};
    -
    559  vtable(operation::CREF, storage, &ref);
    -
    560  return ref;
    -
    561  }
    -
    562 
    -
    563 private:
    -
    564  any storage;
    -
    565  internal::meta_type_node *node;
    -
    566  vtable_type *vtable;
    -
    567 };
    -
    568 
    +
    539  [[nodiscard]] meta_any operator*() const ENTT_NOEXCEPT {
    +
    540  meta_any ret{};
    +
    541  vtable(operation::DEREF, storage, &ret);
    +
    542  return ret;
    +
    543  }
    +
    544 
    +
    549  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    550  return !(node == nullptr);
    +
    551  }
    +
    552 
    +
    558  [[nodiscard]] bool operator==(const meta_any &other) const {
    +
    559  return (!node && !other.node) || (node && other.node && node->info == other.node->info && storage == other.storage);
    +
    560  }
    +
    561 
    +
    566  [[nodiscard]] meta_any as_ref() ENTT_NOEXCEPT {
    +
    567  return meta_any{*this, storage.as_ref()};
    +
    568  }
    569 
    -
    576 [[nodiscard]] inline bool operator!=(const meta_any &lhs, const meta_any &rhs) ENTT_NOEXCEPT {
    -
    577  return !(lhs == rhs);
    -
    578 }
    -
    579 
    +
    571  [[nodiscard]] meta_any as_ref() const ENTT_NOEXCEPT {
    +
    572  return meta_any{*this, storage.as_ref()};
    +
    573  }
    +
    574 
    +
    575 private:
    +
    576  any storage;
    +
    577  internal::meta_type_node *node;
    +
    578  vtable_type *vtable;
    +
    579 };
    580 
    -
    588 struct meta_handle {
    -
    590  meta_handle() = default;
    +
    581 
    +
    588 [[nodiscard]] inline bool operator!=(const meta_any &lhs, const meta_any &rhs) ENTT_NOEXCEPT {
    +
    589  return !(lhs == rhs);
    +
    590 }
    591 
    592 
    -
    594  meta_handle(const meta_handle &) = delete;
    -
    595 
    -
    597  meta_handle(meta_handle &&) = default;
    -
    598 
    -
    603  meta_handle & operator=(const meta_handle &) = delete;
    +
    600 template<typename Type, typename... Args>
    +
    601 meta_any make_meta(Args &&... args) {
    +
    602  return meta_any{std::in_place_type<Type>, std::forward<Args>(args)...};
    +
    603 }
    604 
    -
    609  meta_handle & operator=(meta_handle &&) = default;
    -
    610 
    -
    616  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_handle>>>
    -
    617  meta_handle(Type &value) ENTT_NOEXCEPT
    -
    618  : meta_handle{}
    -
    619  {
    -
    620  if constexpr(std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_any>) {
    -
    621  any = value.as_ref();
    -
    622  } else {
    -
    623  any.emplace<Type &>(value);
    -
    624  }
    -
    625  }
    -
    626 
    -
    631  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    632  return static_cast<bool>(any);
    -
    633  }
    -
    634 
    -
    639  [[nodiscard]] meta_any * operator->() {
    -
    640  return &any;
    -
    641  }
    -
    642 
    -
    644  [[nodiscard]] const meta_any * operator->() const {
    -
    645  return &any;
    -
    646  }
    +
    605 
    +
    612 template<typename Type>
    +
    613 meta_any forward_as_meta(Type &&value) {
    +
    614  return meta_any{std::in_place_type<std::conditional_t<std::is_rvalue_reference_v<Type>, std::decay_t<Type>, Type>>, std::forward<Type>(value)};
    +
    615 }
    +
    616 
    +
    617 
    +
    625 struct meta_handle {
    +
    627  meta_handle() = default;
    +
    628 
    +
    629 
    +
    631  meta_handle(const meta_handle &) = delete;
    +
    632 
    +
    634  meta_handle(meta_handle &&) = default;
    +
    635 
    +
    640  meta_handle & operator=(const meta_handle &) = delete;
    +
    641 
    +
    646  meta_handle & operator=(meta_handle &&) = default;
    647 
    -
    648 private:
    -
    649  meta_any any;
    -
    650 };
    -
    651 
    -
    652 
    -
    654 struct meta_prop {
    -
    656  using node_type = internal::meta_prop_node;
    -
    657 
    -
    662  meta_prop(const node_type *curr = nullptr) ENTT_NOEXCEPT
    -
    663  : node{curr}
    -
    664  {}
    -
    665 
    -
    670  [[nodiscard]] meta_any key() const {
    -
    671  return node->id->as_ref();
    -
    672  }
    -
    673 
    -
    678  [[nodiscard]] meta_any value() const {
    -
    679  return *node->value;
    -
    680  }
    -
    681 
    -
    686  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    687  return !(node == nullptr);
    -
    688  }
    +
    653  template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    +
    654  meta_handle(Type &value) ENTT_NOEXCEPT
    +
    655  : meta_handle{}
    +
    656  {
    +
    657  if constexpr(std::is_same_v<std::decay_t<Type>, meta_any>) {
    +
    658  any = value.as_ref();
    +
    659  } else {
    +
    660  any.emplace<Type &>(value);
    +
    661  }
    +
    662  }
    +
    663 
    +
    668  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    669  return static_cast<bool>(any);
    +
    670  }
    +
    671 
    +
    676  [[nodiscard]] meta_any * operator->() {
    +
    677  return &any;
    +
    678  }
    +
    679 
    +
    681  [[nodiscard]] const meta_any * operator->() const {
    +
    682  return &any;
    +
    683  }
    +
    684 
    +
    685 private:
    +
    686  meta_any any;
    +
    687 };
    +
    688 
    689 
    -
    690 private:
    -
    691  const node_type *node;
    -
    692 };
    -
    693 
    +
    691 struct meta_prop {
    +
    693  using node_type = internal::meta_prop_node;
    694 
    -
    696 struct meta_ctor {
    -
    698  using node_type = internal::meta_ctor_node;
    -
    700  using size_type = typename node_type::size_type;
    -
    701 
    -
    703  meta_ctor(const node_type *curr = nullptr) ENTT_NOEXCEPT
    -
    704  : node{curr}
    -
    705  {}
    -
    706 
    -
    711  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    -
    712 
    -
    717  [[nodiscard]] size_type arity() const ENTT_NOEXCEPT {
    -
    718  return node->arity;
    -
    719  }
    -
    720 
    -
    726  [[nodiscard]] meta_type arg(size_type index) const ENTT_NOEXCEPT;
    -
    727 
    -
    738  [[nodiscard]] meta_any invoke(meta_any * const args, const size_type sz) const {
    -
    739  return sz == arity() ? node->invoke(args) : meta_any{};
    -
    740  }
    -
    741 
    -
    751  template<typename... Args>
    -
    752  [[nodiscard]] meta_any invoke([[maybe_unused]] Args &&... args) const {
    -
    753  std::array<meta_any, sizeof...(Args)> arguments{std::forward<Args>(args)...};
    -
    754  return invoke(arguments.data(), sizeof...(Args));
    -
    755  }
    -
    756 
    -
    761  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    -
    762  return node->prop;
    -
    763  }
    +
    699  meta_prop(const node_type *curr = nullptr) ENTT_NOEXCEPT
    +
    700  : node{curr}
    +
    701  {}
    +
    702 
    +
    707  [[nodiscard]] meta_any key() const {
    +
    708  return node->id.as_ref();
    +
    709  }
    +
    710 
    +
    715  [[nodiscard]] meta_any value() const {
    +
    716  return node->value;
    +
    717  }
    +
    718 
    +
    723  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    724  return !(node == nullptr);
    +
    725  }
    +
    726 
    +
    727 private:
    +
    728  const node_type *node;
    +
    729 };
    +
    730 
    +
    731 
    +
    733 struct meta_ctor {
    +
    735  using node_type = internal::meta_ctor_node;
    +
    737  using size_type = typename node_type::size_type;
    +
    738 
    +
    740  meta_ctor(const node_type *curr = nullptr) ENTT_NOEXCEPT
    +
    741  : node{curr}
    +
    742  {}
    +
    743 
    +
    748  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    +
    749 
    +
    754  [[nodiscard]] size_type arity() const ENTT_NOEXCEPT {
    +
    755  return node->arity;
    +
    756  }
    +
    757 
    +
    763  [[nodiscard]] meta_type arg(size_type index) const ENTT_NOEXCEPT;
    764 
    -
    770  [[nodiscard]] meta_prop prop(meta_any key) const {
    -
    771  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return *curr->id == key; }, node);
    -
    772  }
    -
    773 
    -
    778  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    779  return !(node == nullptr);
    -
    780  }
    -
    781 
    -
    782 private:
    -
    783  const node_type *node;
    -
    784 };
    -
    785 
    -
    786 
    -
    788 struct meta_data {
    -
    790  using node_type = internal::meta_data_node;
    -
    791 
    -
    793  meta_data(const node_type *curr = nullptr) ENTT_NOEXCEPT
    -
    794  : node{curr}
    -
    795  {}
    -
    796 
    -
    798  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    -
    799  return node->id;
    +
    775  [[nodiscard]] meta_any invoke(meta_any * const args, const size_type sz) const {
    +
    776  return sz == arity() ? node->invoke(args) : meta_any{};
    +
    777  }
    +
    778 
    +
    788  template<typename... Args>
    +
    789  [[nodiscard]] meta_any invoke([[maybe_unused]] Args &&... args) const {
    +
    790  meta_any arguments[sizeof...(Args) + 1u]{std::forward<Args>(args)...};
    +
    791  return invoke(arguments, sizeof...(Args));
    +
    792  }
    +
    793 
    +
    798  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    +
    799  return node->prop;
    800  }
    801 
    -
    803  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    -
    804 
    -
    809  [[nodiscard]] bool is_const() const ENTT_NOEXCEPT {
    -
    810  return node->is_const;
    -
    811  }
    -
    812 
    -
    817  [[nodiscard]] bool is_static() const ENTT_NOEXCEPT {
    -
    818  return node->is_static;
    -
    819  }
    -
    820 
    -
    822  [[nodiscard]] inline meta_type type() const ENTT_NOEXCEPT;
    +
    807  [[nodiscard]] meta_prop prop(meta_any key) const {
    +
    808  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return curr->id == key; }, node);
    +
    809  }
    +
    810 
    +
    815  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    816  return !(node == nullptr);
    +
    817  }
    +
    818 
    +
    819 private:
    +
    820  const node_type *node;
    +
    821 };
    +
    822 
    823 
    -
    838  template<typename Type>
    -
    839  bool set(meta_handle instance, Type &&value) const {
    -
    840  return node->set && node->set(std::move(instance), std::forward<Type>(value));
    -
    841  }
    -
    842 
    -
    852  [[nodiscard]] meta_any get(meta_handle instance) const {
    -
    853  return node->get(std::move(instance));
    -
    854  }
    -
    855 
    -
    857  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    -
    858  return node->prop;
    -
    859  }
    +
    825 struct meta_data {
    +
    827  using node_type = internal::meta_data_node;
    +
    828 
    +
    830  meta_data(const node_type *curr = nullptr) ENTT_NOEXCEPT
    +
    831  : node{curr}
    +
    832  {}
    +
    833 
    +
    835  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    +
    836  return node->id;
    +
    837  }
    +
    838 
    +
    840  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    +
    841 
    +
    846  [[nodiscard]] bool is_const() const ENTT_NOEXCEPT {
    +
    847  return node->is_const;
    +
    848  }
    +
    849 
    +
    854  [[nodiscard]] bool is_static() const ENTT_NOEXCEPT {
    +
    855  return node->is_static;
    +
    856  }
    +
    857 
    +
    859  [[nodiscard]] inline meta_type type() const ENTT_NOEXCEPT;
    860 
    -
    866  [[nodiscard]] meta_prop prop(meta_any key) const {
    -
    867  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return *curr->id == key; }, node);
    -
    868  }
    -
    869 
    -
    874  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    875  return !(node == nullptr);
    -
    876  }
    -
    877 
    -
    878 private:
    -
    879  const node_type *node;
    -
    880 };
    -
    881 
    -
    882 
    -
    884 struct meta_func {
    -
    886  using node_type = internal::meta_func_node;
    -
    888  using size_type = typename node_type::size_type;
    -
    889 
    -
    891  meta_func(const node_type *curr = nullptr) ENTT_NOEXCEPT
    -
    892  : node{curr}
    -
    893  {}
    -
    894 
    -
    896  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    -
    897  return node->id;
    -
    898  }
    -
    899 
    -
    901  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    -
    902 
    -
    907  [[nodiscard]] size_type arity() const ENTT_NOEXCEPT {
    -
    908  return node->arity;
    -
    909  }
    -
    910 
    -
    915  [[nodiscard]] bool is_const() const ENTT_NOEXCEPT {
    -
    916  return node->is_const;
    -
    917  }
    +
    875  template<typename Type>
    +
    876  bool set(meta_handle instance, Type &&value) const {
    +
    877  return node->set && node->set(std::move(instance), std::forward<Type>(value));
    +
    878  }
    +
    879 
    +
    889  [[nodiscard]] meta_any get(meta_handle instance) const {
    +
    890  return node->get(std::move(instance));
    +
    891  }
    +
    892 
    +
    894  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    +
    895  return node->prop;
    +
    896  }
    +
    897 
    +
    903  [[nodiscard]] meta_prop prop(meta_any key) const {
    +
    904  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return curr->id == key; }, node);
    +
    905  }
    +
    906 
    +
    911  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    912  return !(node == nullptr);
    +
    913  }
    +
    914 
    +
    915 private:
    +
    916  const node_type *node;
    +
    917 };
    918 
    -
    923  [[nodiscard]] bool is_static() const ENTT_NOEXCEPT {
    -
    924  return node->is_static;
    -
    925  }
    +
    919 
    +
    921 struct meta_func {
    +
    923  using node_type = internal::meta_func_node;
    +
    925  using size_type = typename node_type::size_type;
    926 
    -
    931  [[nodiscard]] inline meta_type ret() const ENTT_NOEXCEPT;
    -
    932 
    -
    938  [[nodiscard]] inline meta_type arg(size_type index) const ENTT_NOEXCEPT;
    +
    928  meta_func(const node_type *curr = nullptr) ENTT_NOEXCEPT
    +
    929  : node{curr}
    +
    930  {}
    +
    931 
    +
    933  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    +
    934  return node->id;
    +
    935  }
    +
    936 
    +
    938  [[nodiscard]] inline meta_type parent() const ENTT_NOEXCEPT;
    939 
    -
    955  meta_any invoke(meta_handle instance, meta_any * const args, const size_type sz) const {
    -
    956  return sz == arity() ? node->invoke(std::move(instance), args) : meta_any{};
    -
    957  }
    -
    958 
    -
    969  template<typename... Args>
    -
    970  meta_any invoke(meta_handle instance, Args &&... args) const {
    -
    971  std::array<meta_any, sizeof...(Args)> arguments{std::forward<Args>(args)...};
    -
    972  return invoke(std::move(instance), arguments.data(), sizeof...(Args));
    -
    973  }
    -
    974 
    -
    976  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    -
    977  return node->prop;
    -
    978  }
    -
    979 
    -
    985  [[nodiscard]] meta_prop prop(meta_any key) const {
    -
    986  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return *curr->id == key; }, node);
    -
    987  }
    -
    988 
    -
    993  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    994  return !(node == nullptr);
    -
    995  }
    -
    996 
    -
    997 private:
    -
    998  const node_type *node;
    -
    999 };
    -
    1000 
    -
    1001 
    -
    1003 class meta_type {
    -
    1004  static bool can_cast_or_convert(const internal::meta_type_node *type, const type_info info) ENTT_NOEXCEPT {
    -
    1005  if(type->info == info) {
    -
    1006  return true;
    -
    1007  }
    -
    1008 
    -
    1009  for(const auto *curr = type->conv; curr; curr = curr->next) {
    -
    1010  if(curr->type()->info == info) {
    -
    1011  return true;
    -
    1012  }
    -
    1013  }
    -
    1014 
    -
    1015  for(const auto *curr = type->base; curr; curr = curr->next) {
    -
    1016  if(auto *target = curr->type(); can_cast_or_convert(target, info)) {
    -
    1017  return true;
    -
    1018  }
    -
    1019  }
    -
    1020 
    -
    1021  return false;
    -
    1022  }
    -
    1023 
    -
    1024  template<typename... Args, auto... Index>
    -
    1025  [[nodiscard]] static const internal::meta_ctor_node * ctor(const internal::meta_ctor_node *curr, std::index_sequence<Index...>) {
    -
    1026  for(; curr; curr = curr->next) {
    -
    1027  if(curr->arity == sizeof...(Args) && (can_cast_or_convert(internal::meta_info<Args>::resolve(), curr->arg(Index).info()) && ...)) {
    -
    1028  return curr;
    -
    1029  }
    -
    1030  }
    -
    1031 
    -
    1032  return nullptr;
    -
    1033  }
    -
    1034 
    -
    1035 public:
    -
    1037  using node_type = internal::meta_type_node;
    -
    1039  using base_node_type = internal::meta_base_node;
    -
    1041  using size_type = typename node_type::size_type;
    -
    1042 
    -
    1044  meta_type(node_type *curr = nullptr) ENTT_NOEXCEPT
    -
    1045  : node{curr}
    -
    1046  {}
    -
    1047 
    -
    1052  meta_type(base_node_type *curr) ENTT_NOEXCEPT
    -
    1053  : node{curr ? curr->type() : nullptr}
    -
    1054  {}
    -
    1055 
    -
    1060  [[nodiscard]] type_info info() const ENTT_NOEXCEPT {
    -
    1061  return node->info;
    -
    1062  }
    -
    1063 
    -
    1068  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    -
    1069  return node->id;
    +
    944  [[nodiscard]] size_type arity() const ENTT_NOEXCEPT {
    +
    945  return node->arity;
    +
    946  }
    +
    947 
    +
    952  [[nodiscard]] bool is_const() const ENTT_NOEXCEPT {
    +
    953  return node->is_const;
    +
    954  }
    +
    955 
    +
    960  [[nodiscard]] bool is_static() const ENTT_NOEXCEPT {
    +
    961  return node->is_static;
    +
    962  }
    +
    963 
    +
    968  [[nodiscard]] inline meta_type ret() const ENTT_NOEXCEPT;
    +
    969 
    +
    975  [[nodiscard]] inline meta_type arg(size_type index) const ENTT_NOEXCEPT;
    +
    976 
    +
    992  meta_any invoke(meta_handle instance, meta_any * const args, const size_type sz) const {
    +
    993  return sz == arity() ? node->invoke(std::move(instance), args) : meta_any{};
    +
    994  }
    +
    995 
    +
    1006  template<typename... Args>
    +
    1007  meta_any invoke(meta_handle instance, Args &&... args) const {
    +
    1008  meta_any arguments[sizeof...(Args) + 1u]{std::forward<Args>(args)...};
    +
    1009  return invoke(std::move(instance), arguments, sizeof...(Args));
    +
    1010  }
    +
    1011 
    +
    1013  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    +
    1014  return node->prop;
    +
    1015  }
    +
    1016 
    +
    1022  [[nodiscard]] meta_prop prop(meta_any key) const {
    +
    1023  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return curr->id == key; }, node);
    +
    1024  }
    +
    1025 
    +
    1030  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    1031  return !(node == nullptr);
    +
    1032  }
    +
    1033 
    +
    1034 private:
    +
    1035  const node_type *node;
    +
    1036 };
    +
    1037 
    +
    1038 
    +
    1040 class meta_type {
    +
    1041  static bool can_cast_or_convert(const internal::meta_type_node *type, const type_info info) ENTT_NOEXCEPT {
    +
    1042  if(type->info == info) {
    +
    1043  return true;
    +
    1044  }
    +
    1045 
    +
    1046  for(const auto *curr = type->conv; curr; curr = curr->next) {
    +
    1047  if(curr->type()->info == info) {
    +
    1048  return true;
    +
    1049  }
    +
    1050  }
    +
    1051 
    +
    1052  for(const auto *curr = type->base; curr; curr = curr->next) {
    +
    1053  if(auto *target = curr->type(); can_cast_or_convert(target, info)) {
    +
    1054  return true;
    +
    1055  }
    +
    1056  }
    +
    1057 
    +
    1058  return false;
    +
    1059  }
    +
    1060 
    +
    1061  template<typename... Args, auto... Index>
    +
    1062  [[nodiscard]] static const internal::meta_ctor_node * ctor(const internal::meta_ctor_node *curr, std::index_sequence<Index...>) {
    +
    1063  for(; curr; curr = curr->next) {
    +
    1064  if(curr->arity == sizeof...(Args) && (can_cast_or_convert(internal::meta_info<Args>::resolve(), curr->arg(Index).info()) && ...)) {
    +
    1065  return curr;
    +
    1066  }
    +
    1067  }
    +
    1068 
    +
    1069  return nullptr;
    1070  }
    1071 
    -
    1076  [[nodiscard]] size_type size_of() const ENTT_NOEXCEPT {
    -
    1077  return node->size_of;
    +
    1072  template<auto... Member, typename Node>
    +
    1073  void unregister_all(Node **curr) {
    +
    1074  while(*curr) {
    +
    1075  (unregister_all(&((*curr)->*Member)), ...);
    +
    1076  *curr = std::exchange((*curr)->next, nullptr);
    +
    1077  }
    1078  }
    1079 
    -
    1084  [[nodiscard]] bool is_void() const ENTT_NOEXCEPT {
    -
    1085  return node->is_void;
    -
    1086  }
    +
    1080 public:
    +
    1082  using node_type = internal::meta_type_node;
    +
    1084  using base_node_type = internal::meta_base_node;
    +
    1086  using size_type = typename node_type::size_type;
    1087 
    -
    1092  [[nodiscard]] bool is_integral() const ENTT_NOEXCEPT {
    -
    1093  return node->is_integral;
    -
    1094  }
    -
    1095 
    -
    1101  [[nodiscard]] bool is_floating_point() const ENTT_NOEXCEPT {
    -
    1102  return node->is_floating_point;
    -
    1103  }
    -
    1104 
    -
    1109  [[nodiscard]] bool is_array() const ENTT_NOEXCEPT {
    -
    1110  return node->is_array;
    -
    1111  }
    -
    1112 
    -
    1117  [[nodiscard]] bool is_enum() const ENTT_NOEXCEPT {
    -
    1118  return node->is_enum;
    -
    1119  }
    -
    1120 
    -
    1125  [[nodiscard]] bool is_union() const ENTT_NOEXCEPT {
    -
    1126  return node->is_union;
    -
    1127  }
    -
    1128 
    -
    1133  [[nodiscard]] bool is_class() const ENTT_NOEXCEPT {
    -
    1134  return node->is_class;
    -
    1135  }
    -
    1136 
    -
    1141  [[nodiscard]] bool is_pointer() const ENTT_NOEXCEPT {
    -
    1142  return node->is_pointer;
    -
    1143  }
    -
    1144 
    -
    1150  [[nodiscard]] bool is_function_pointer() const ENTT_NOEXCEPT {
    -
    1151  return node->is_function_pointer;
    -
    1152  }
    -
    1153 
    -
    1159  [[nodiscard]] bool is_member_object_pointer() const ENTT_NOEXCEPT {
    -
    1160  return node->is_member_object_pointer;
    -
    1161  }
    -
    1162 
    -
    1169  [[nodiscard]] bool is_member_function_pointer() const ENTT_NOEXCEPT {
    -
    1170  return node->is_member_function_pointer;
    -
    1171  }
    -
    1172 
    -
    1178  [[nodiscard]] bool is_pointer_like() const ENTT_NOEXCEPT {
    -
    1179  return node->is_pointer_like;
    +
    1089  meta_type(node_type *curr = nullptr) ENTT_NOEXCEPT
    +
    1090  : node{curr}
    +
    1091  {}
    +
    1092 
    +
    1097  meta_type(base_node_type *curr) ENTT_NOEXCEPT
    +
    1098  : node{curr ? curr->type() : nullptr}
    +
    1099  {}
    +
    1100 
    +
    1105  [[nodiscard]] type_info info() const ENTT_NOEXCEPT {
    +
    1106  return node->info;
    +
    1107  }
    +
    1108 
    +
    1113  [[nodiscard]] id_type id() const ENTT_NOEXCEPT {
    +
    1114  return node->id;
    +
    1115  }
    +
    1116 
    +
    1121  [[nodiscard]] size_type size_of() const ENTT_NOEXCEPT {
    +
    1122  return node->size_of;
    +
    1123  }
    +
    1124 
    +
    1129  [[nodiscard]] bool is_void() const ENTT_NOEXCEPT {
    +
    1130  return node->is_void;
    +
    1131  }
    +
    1132 
    +
    1137  [[nodiscard]] bool is_integral() const ENTT_NOEXCEPT {
    +
    1138  return node->is_integral;
    +
    1139  }
    +
    1140 
    +
    1146  [[nodiscard]] bool is_floating_point() const ENTT_NOEXCEPT {
    +
    1147  return node->is_floating_point;
    +
    1148  }
    +
    1149 
    +
    1154  [[nodiscard]] bool is_array() const ENTT_NOEXCEPT {
    +
    1155  return node->is_array;
    +
    1156  }
    +
    1157 
    +
    1162  [[nodiscard]] bool is_enum() const ENTT_NOEXCEPT {
    +
    1163  return node->is_enum;
    +
    1164  }
    +
    1165 
    +
    1170  [[nodiscard]] bool is_union() const ENTT_NOEXCEPT {
    +
    1171  return node->is_union;
    +
    1172  }
    +
    1173 
    +
    1178  [[nodiscard]] bool is_class() const ENTT_NOEXCEPT {
    +
    1179  return node->is_class;
    1180  }
    1181 
    -
    1186  [[nodiscard]] bool is_sequence_container() const ENTT_NOEXCEPT {
    -
    1187  return node->is_sequence_container;
    +
    1186  [[nodiscard]] bool is_pointer() const ENTT_NOEXCEPT {
    +
    1187  return node->is_pointer;
    1188  }
    1189 
    -
    1194  [[nodiscard]] bool is_associative_container() const ENTT_NOEXCEPT {
    -
    1195  return node->is_associative_container;
    -
    1196  }
    -
    1197 
    -
    1204  [[nodiscard]] bool is_template_specialization() const ENTT_NOEXCEPT {
    -
    1205  return node->template_info.is_template_specialization;
    +
    1195  [[nodiscard]] bool is_function_pointer() const ENTT_NOEXCEPT {
    +
    1196  return node->is_function_pointer;
    +
    1197  }
    +
    1198 
    +
    1204  [[nodiscard]] bool is_member_object_pointer() const ENTT_NOEXCEPT {
    +
    1205  return node->is_member_object_pointer;
    1206  }
    1207 
    -
    1212  [[nodiscard]] size_type template_arity() const ENTT_NOEXCEPT {
    -
    1213  return node->template_info.arity;
    -
    1214  }
    -
    1215 
    -
    1223  [[nodiscard]] inline meta_type template_type() const ENTT_NOEXCEPT {
    -
    1224  return is_template_specialization() ? node->template_info.type() : meta_type{};
    +
    1214  [[nodiscard]] bool is_member_function_pointer() const ENTT_NOEXCEPT {
    +
    1215  return node->is_member_function_pointer;
    +
    1216  }
    +
    1217 
    +
    1223  [[nodiscard]] bool is_pointer_like() const ENTT_NOEXCEPT {
    +
    1224  return node->is_pointer_like;
    1225  }
    1226 
    -
    1232  [[nodiscard]] inline meta_type template_arg(size_type index) const ENTT_NOEXCEPT {
    -
    1233  return index < template_arity() ? node->template_info.arg(index) : meta_type{};
    -
    1234  }
    -
    1235 
    -
    1240  [[nodiscard]] size_type rank() const ENTT_NOEXCEPT {
    -
    1241  return node->rank;
    -
    1242  }
    -
    1243 
    -
    1250  [[nodiscard]] size_type extent(size_type dim = {}) const ENTT_NOEXCEPT {
    -
    1251  return node->extent(dim);
    -
    1252  }
    -
    1253 
    -
    1259  [[nodiscard]] meta_type remove_pointer() const ENTT_NOEXCEPT {
    -
    1260  return node->remove_pointer();
    -
    1261  }
    -
    1262 
    -
    1268  [[nodiscard]] meta_type remove_extent() const ENTT_NOEXCEPT {
    -
    1269  return node->remove_extent();
    +
    1231  [[nodiscard]] bool is_sequence_container() const ENTT_NOEXCEPT {
    +
    1232  return node->is_sequence_container;
    +
    1233  }
    +
    1234 
    +
    1239  [[nodiscard]] bool is_associative_container() const ENTT_NOEXCEPT {
    +
    1240  return node->is_associative_container;
    +
    1241  }
    +
    1242 
    +
    1249  [[nodiscard]] bool is_template_specialization() const ENTT_NOEXCEPT {
    +
    1250  return node->template_info.is_template_specialization;
    +
    1251  }
    +
    1252 
    +
    1257  [[nodiscard]] size_type template_arity() const ENTT_NOEXCEPT {
    +
    1258  return node->template_info.arity;
    +
    1259  }
    +
    1260 
    +
    1268  [[nodiscard]] inline meta_type template_type() const ENTT_NOEXCEPT {
    +
    1269  return is_template_specialization() ? node->template_info.type() : meta_type{};
    1270  }
    1271 
    -
    1276  [[nodiscard]] meta_range<meta_type, internal::meta_base_node> base() const ENTT_NOEXCEPT {
    -
    1277  return node->base;
    -
    1278  }
    -
    1279 
    -
    1285  [[nodiscard]] meta_type base(const id_type id) const {
    -
    1286  return internal::meta_visit<&node_type::base>([id](const auto *curr) { return curr->type()->id == id; }, node);
    +
    1277  [[nodiscard]] inline meta_type template_arg(size_type index) const ENTT_NOEXCEPT {
    +
    1278  return index < template_arity() ? node->template_info.arg(index) : meta_type{};
    +
    1279  }
    +
    1280 
    +
    1285  [[nodiscard]] size_type rank() const ENTT_NOEXCEPT {
    +
    1286  return node->rank;
    1287  }
    1288 
    -
    1293  [[nodiscard]] meta_range<meta_ctor> ctor() const ENTT_NOEXCEPT {
    -
    1294  return node->ctor;
    -
    1295  }
    -
    1296 
    -
    1302  template<typename... Args>
    -
    1303  [[nodiscard]] meta_ctor ctor() const {
    -
    1304  return ctor<Args...>(node->ctor, std::make_index_sequence<sizeof...(Args)>{});
    -
    1305  }
    -
    1306 
    -
    1311  [[nodiscard]] meta_range<meta_data> data() const ENTT_NOEXCEPT {
    -
    1312  return node->data;
    -
    1313  }
    -
    1314 
    -
    1323  [[nodiscard]] meta_data data(const id_type id) const {
    -
    1324  return internal::meta_visit<&node_type::data>([id](const auto *curr) { return curr->id == id; }, node);
    -
    1325  }
    -
    1326 
    -
    1331  [[nodiscard]] meta_range<meta_func> func() const ENTT_NOEXCEPT {
    -
    1332  return node->func;
    -
    1333  }
    -
    1334 
    -
    1345  [[nodiscard]] meta_func func(const id_type id) const {
    -
    1346  return internal::meta_visit<&node_type::func>([id](const auto *curr) { return curr->id == id; }, node);
    -
    1347  }
    -
    1348 
    -
    1359  [[nodiscard]] meta_any construct(meta_any * const args, const size_type sz) const {
    -
    1360  meta_any ret{};
    -
    1361  internal::meta_visit<&node_type::ctor>([args, sz, &ret](const auto *curr) { return (curr->arity == sz) && (ret = curr->invoke(args)); }, node);
    -
    1362  return ret;
    -
    1363  }
    -
    1364 
    -
    1374  template<typename... Args>
    -
    1375  [[nodiscard]] meta_any construct(Args &&... args) const {
    -
    1376  std::array<meta_any, sizeof...(Args)> arguments{std::forward<Args>(args)...};
    -
    1377  return construct(arguments.data(), sizeof...(Args));
    +
    1295  [[nodiscard]] size_type extent(size_type dim = {}) const ENTT_NOEXCEPT {
    +
    1296  return node->extent(dim);
    +
    1297  }
    +
    1298 
    +
    1304  [[nodiscard]] meta_type remove_pointer() const ENTT_NOEXCEPT {
    +
    1305  return node->remove_pointer();
    +
    1306  }
    +
    1307 
    +
    1313  [[nodiscard]] meta_type remove_extent() const ENTT_NOEXCEPT {
    +
    1314  return node->remove_extent();
    +
    1315  }
    +
    1316 
    +
    1321  [[nodiscard]] meta_range<meta_type, internal::meta_base_node> base() const ENTT_NOEXCEPT {
    +
    1322  return node->base;
    +
    1323  }
    +
    1324 
    +
    1330  [[nodiscard]] meta_type base(const id_type id) const {
    +
    1331  return internal::meta_visit<&node_type::base>([id](const auto *curr) { return curr->type()->id == id; }, node);
    +
    1332  }
    +
    1333 
    +
    1338  [[nodiscard]] meta_range<meta_ctor> ctor() const ENTT_NOEXCEPT {
    +
    1339  return node->ctor;
    +
    1340  }
    +
    1341 
    +
    1347  template<typename... Args>
    +
    1348  [[nodiscard]] meta_ctor ctor() const {
    +
    1349  return ctor<Args...>(node->ctor, std::make_index_sequence<sizeof...(Args)>{});
    +
    1350  }
    +
    1351 
    +
    1356  [[nodiscard]] meta_range<meta_data> data() const ENTT_NOEXCEPT {
    +
    1357  return node->data;
    +
    1358  }
    +
    1359 
    +
    1368  [[nodiscard]] meta_data data(const id_type id) const {
    +
    1369  return internal::meta_visit<&node_type::data>([id](const auto *curr) { return curr->id == id; }, node);
    +
    1370  }
    +
    1371 
    +
    1376  [[nodiscard]] meta_range<meta_func> func() const ENTT_NOEXCEPT {
    +
    1377  return node->func;
    1378  }
    1379 
    -
    1395  meta_any invoke(const id_type id, meta_handle instance, meta_any * const args, const size_type sz) const {
    -
    1396  const internal::meta_func_node* candidate{};
    -
    1397  size_type extent{sz + 1u};
    -
    1398  bool ambiguous{};
    -
    1399 
    -
    1400  for(auto *it = internal::meta_visit<&node_type::func>([id, sz](const auto *curr) { return curr->id == id && curr->arity == sz; }, node); it && it->id == id && it->arity == sz; it = it->next) {
    -
    1401  size_type direct{};
    -
    1402  size_type ext{};
    -
    1403 
    -
    1404  for(size_type next{}; next < sz && next == (direct + ext); ++next) {
    -
    1405  const auto type = args[next].type();
    -
    1406  const auto req = it->arg(next).info();
    -
    1407  type.info() == req ? ++direct : (ext += can_cast_or_convert(type.node, req));
    -
    1408  }
    +
    1390  [[nodiscard]] meta_func func(const id_type id) const {
    +
    1391  return internal::meta_visit<&node_type::func>([id](const auto *curr) { return curr->id == id; }, node);
    +
    1392  }
    +
    1393 
    +
    1404  [[nodiscard]] meta_any construct(meta_any * const args, const size_type sz) const {
    +
    1405  meta_any ret{};
    +
    1406  internal::meta_visit<&node_type::ctor>([args, sz, &ret](const auto *curr) { return (curr->arity == sz) && (ret = curr->invoke(args)); }, node);
    +
    1407  return ret;
    +
    1408  }
    1409 
    -
    1410  if((direct + ext) == sz) {
    -
    1411  if(ext < extent) {
    -
    1412  candidate = it;
    -
    1413  extent = ext;
    -
    1414  ambiguous = false;
    -
    1415  } else if(ext == extent) {
    -
    1416  ambiguous = true;
    -
    1417  }
    -
    1418  }
    -
    1419  }
    -
    1420 
    -
    1421  return (candidate && !ambiguous) ? candidate->invoke(std::move(instance), args) : meta_any{};
    -
    1422  }
    -
    1423 
    -
    1435  template<typename... Args>
    -
    1436  meta_any invoke(const id_type id, meta_handle instance, Args &&... args) const {
    -
    1437  std::array<meta_any, sizeof...(Args)> arguments{std::forward<Args>(args)...};
    -
    1438  return invoke(id, std::move(instance), arguments.data(), sizeof...(Args));
    -
    1439  }
    -
    1440 
    -
    1456  template<typename Type>
    -
    1457  bool set(const id_type id, meta_handle instance, Type &&value) const {
    -
    1458  auto const candidate = data(id);
    -
    1459  return candidate ? candidate.set(std::move(instance), std::forward<Type>(value)) : false;
    -
    1460  }
    -
    1461 
    -
    1472  [[nodiscard]] meta_any get(const id_type id, meta_handle instance) const {
    -
    1473  auto const candidate = data(id);
    -
    1474  return candidate ? candidate.get(std::move(instance)) : meta_any{};
    -
    1475  }
    -
    1476 
    -
    1481  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    -
    1482  return node->prop;
    -
    1483  }
    -
    1484 
    -
    1493  [[nodiscard]] meta_prop prop(meta_any key) const {
    -
    1494  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return *curr->id == key; }, node);
    -
    1495  }
    -
    1496 
    -
    1501  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    1502  return !(node == nullptr);
    -
    1503  }
    -
    1504 
    -
    1510  [[nodiscard]] bool operator==(const meta_type &other) const ENTT_NOEXCEPT {
    -
    1511  return (!node && !other.node) || (node && other.node && node->info == other.node->info);
    -
    1512  }
    -
    1513 
    -
    1524  void reset() ENTT_NOEXCEPT {
    -
    1525  auto** it = internal::meta_context::global();
    -
    1526 
    -
    1527  while(*it && *it != node) {
    -
    1528  it = &(*it)->next;
    -
    1529  }
    -
    1530 
    -
    1531  if(*it) {
    -
    1532  *it = (*it)->next;
    -
    1533  }
    -
    1534 
    -
    1535  const auto unregister_all = y_combinator{
    -
    1536  [](auto &&self, auto **curr, auto... member) {
    -
    1537  while(*curr) {
    -
    1538  auto *prev = *curr;
    -
    1539  (self(&(prev->*member)), ...);
    -
    1540  *curr = prev->next;
    -
    1541  prev->next = nullptr;
    -
    1542  }
    -
    1543  }
    -
    1544  };
    -
    1545 
    -
    1546  unregister_all(&node->prop);
    -
    1547  unregister_all(&node->base);
    -
    1548  unregister_all(&node->conv);
    -
    1549  unregister_all(&node->ctor, &internal::meta_ctor_node::prop);
    -
    1550  unregister_all(&node->data, &internal::meta_data_node::prop);
    -
    1551  unregister_all(&node->func, &internal::meta_func_node::prop);
    -
    1552 
    -
    1553  node->id = {};
    -
    1554  node->ctor = node->def_ctor;
    -
    1555  node->dtor = nullptr;
    -
    1556  }
    -
    1557 
    -
    1558 private:
    -
    1559  node_type *node;
    -
    1560 };
    -
    1561 
    -
    1562 
    -
    1569 [[nodiscard]] inline bool operator!=(const meta_type &lhs, const meta_type &rhs) ENTT_NOEXCEPT {
    -
    1570  return !(lhs == rhs);
    -
    1571 }
    -
    1572 
    -
    1573 
    -
    1574 [[nodiscard]] inline meta_type meta_any::type() const ENTT_NOEXCEPT {
    -
    1575  return node;
    -
    1576 }
    -
    1577 
    -
    1578 
    -
    1579 template<typename... Args>
    -
    1580 meta_any meta_any::invoke(const id_type id, Args &&... args) const {
    -
    1581  return type().invoke(id, *this, std::forward<Args>(args)...);
    -
    1582 }
    +
    1419  template<typename... Args>
    +
    1420  [[nodiscard]] meta_any construct(Args &&... args) const {
    +
    1421  meta_any arguments[sizeof...(Args) + 1u]{std::forward<Args>(args)...};
    +
    1422  return construct(arguments, sizeof...(Args));
    +
    1423  }
    +
    1424 
    +
    1440  meta_any invoke(const id_type id, meta_handle instance, meta_any * const args, const size_type sz) const {
    +
    1441  const internal::meta_func_node* candidate{};
    +
    1442  size_type extent{sz + 1u};
    +
    1443  bool ambiguous{};
    +
    1444 
    +
    1445  for(auto *it = internal::meta_visit<&node_type::func>([id, sz](const auto *curr) { return curr->id == id && curr->arity == sz; }, node); it && it->id == id && it->arity == sz; it = it->next) {
    +
    1446  size_type direct{};
    +
    1447  size_type ext{};
    +
    1448 
    +
    1449  for(size_type next{}; next < sz && next == (direct + ext); ++next) {
    +
    1450  const auto type = args[next].type();
    +
    1451  const auto req = it->arg(next).info();
    +
    1452  type.info() == req ? ++direct : (ext += can_cast_or_convert(type.node, req));
    +
    1453  }
    +
    1454 
    +
    1455  if((direct + ext) == sz) {
    +
    1456  if(ext < extent) {
    +
    1457  candidate = it;
    +
    1458  extent = ext;
    +
    1459  ambiguous = false;
    +
    1460  } else if(ext == extent) {
    +
    1461  ambiguous = true;
    +
    1462  }
    +
    1463  }
    +
    1464  }
    +
    1465 
    +
    1466  return (candidate && !ambiguous) ? candidate->invoke(std::move(instance), args) : meta_any{};
    +
    1467  }
    +
    1468 
    +
    1480  template<typename... Args>
    +
    1481  meta_any invoke(const id_type id, meta_handle instance, Args &&... args) const {
    +
    1482  meta_any arguments[sizeof...(Args) + 1u]{std::forward<Args>(args)...};
    +
    1483  return invoke(id, std::move(instance), arguments, sizeof...(Args));
    +
    1484  }
    +
    1485 
    +
    1501  template<typename Type>
    +
    1502  bool set(const id_type id, meta_handle instance, Type &&value) const {
    +
    1503  const auto candidate = data(id);
    +
    1504  return candidate && candidate.set(std::move(instance), std::forward<Type>(value));
    +
    1505  }
    +
    1506 
    +
    1517  [[nodiscard]] meta_any get(const id_type id, meta_handle instance) const {
    +
    1518  const auto candidate = data(id);
    +
    1519  return candidate ? candidate.get(std::move(instance)) : meta_any{};
    +
    1520  }
    +
    1521 
    +
    1526  [[nodiscard]] meta_range<meta_prop> prop() const ENTT_NOEXCEPT {
    +
    1527  return node->prop;
    +
    1528  }
    +
    1529 
    +
    1538  [[nodiscard]] meta_prop prop(meta_any key) const {
    +
    1539  return internal::meta_visit<&node_type::prop>([&key](const auto *curr) { return curr->id == key; }, node);
    +
    1540  }
    +
    1541 
    +
    1546  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    1547  return !(node == nullptr);
    +
    1548  }
    +
    1549 
    +
    1555  [[nodiscard]] bool operator==(const meta_type &other) const ENTT_NOEXCEPT {
    +
    1556  return (!node && !other.node) || (node && other.node && node->info == other.node->info);
    +
    1557  }
    +
    1558 
    +
    1569  void reset() ENTT_NOEXCEPT {
    +
    1570  for(auto** it = internal::meta_context::global(); *it; it = &(*it)->next) {
    +
    1571  if(*it == node) {
    +
    1572  *it = (*it)->next;
    +
    1573  break;
    +
    1574  }
    +
    1575  }
    +
    1576 
    +
    1577  unregister_all(&node->prop);
    +
    1578  unregister_all(&node->base);
    +
    1579  unregister_all(&node->conv);
    +
    1580  unregister_all<&internal::meta_ctor_node::prop>(&node->ctor);
    +
    1581  unregister_all<&internal::meta_data_node::prop>(&node->data);
    +
    1582  unregister_all<&internal::meta_func_node::prop>(&node->func);
    1583 
    -
    1584 
    -
    1585 template<typename... Args>
    -
    1586 meta_any meta_any::invoke(const id_type id, Args &&... args) {
    -
    1587  return type().invoke(id, *this, std::forward<Args>(args)...);
    -
    1588 }
    -
    1589 
    -
    1590 
    -
    1591 template<typename Type>
    -
    1592 bool meta_any::set(const id_type id, Type &&value) {
    -
    1593  return type().set(id, *this, std::forward<Type>(value));
    -
    1594 }
    -
    1595 
    -
    1596 
    -
    1597 [[nodiscard]] inline meta_any meta_any::get(const id_type id) const {
    -
    1598  return type().get(id, *this);
    -
    1599 }
    -
    1600 
    -
    1601 
    -
    1602 [[nodiscard]] inline meta_any meta_any::get(const id_type id) {
    -
    1603  return type().get(id, *this);
    -
    1604 }
    -
    1605 
    -
    1606 
    -
    1607 [[nodiscard]] inline meta_type meta_ctor::parent() const ENTT_NOEXCEPT {
    -
    1608  return node->parent;
    -
    1609 }
    -
    1610 
    -
    1611 
    -
    1612 [[nodiscard]] inline meta_type meta_ctor::arg(size_type index) const ENTT_NOEXCEPT {
    -
    1613  return index < arity() ? node->arg(index) : meta_type{};
    -
    1614 }
    +
    1584  node->id = {};
    +
    1585  node->ctor = node->def_ctor;
    +
    1586  node->dtor = nullptr;
    +
    1587  }
    +
    1588 
    +
    1589 private:
    +
    1590  node_type *node;
    +
    1591 };
    +
    1592 
    +
    1593 
    +
    1600 [[nodiscard]] inline bool operator!=(const meta_type &lhs, const meta_type &rhs) ENTT_NOEXCEPT {
    +
    1601  return !(lhs == rhs);
    +
    1602 }
    +
    1603 
    +
    1604 
    +
    1605 [[nodiscard]] inline meta_type meta_any::type() const ENTT_NOEXCEPT {
    +
    1606  return node;
    +
    1607 }
    +
    1608 
    +
    1609 
    +
    1610 template<typename... Args>
    +
    1611 meta_any meta_any::invoke(const id_type id, Args &&... args) const {
    +
    1612  return type().invoke(id, *this, std::forward<Args>(args)...);
    +
    1613 }
    +
    1614 
    1615 
    -
    1616 
    -
    1617 [[nodiscard]] inline meta_type meta_data::parent() const ENTT_NOEXCEPT {
    -
    1618  return node->parent;
    +
    1616 template<typename... Args>
    +
    1617 meta_any meta_any::invoke(const id_type id, Args &&... args) {
    +
    1618  return type().invoke(id, *this, std::forward<Args>(args)...);
    1619 }
    1620 
    1621 
    -
    1622 [[nodiscard]] inline meta_type meta_data::type() const ENTT_NOEXCEPT {
    -
    1623  return node->type();
    -
    1624 }
    -
    1625 
    +
    1622 template<typename Type>
    +
    1623 bool meta_any::set(const id_type id, Type &&value) {
    +
    1624  return type().set(id, *this, std::forward<Type>(value));
    +
    1625 }
    1626 
    -
    1627 [[nodiscard]] inline meta_type meta_func::parent() const ENTT_NOEXCEPT {
    -
    1628  return node->parent;
    -
    1629 }
    -
    1630 
    +
    1627 
    +
    1628 [[nodiscard]] inline meta_any meta_any::get(const id_type id) const {
    +
    1629  return type().get(id, *this);
    +
    1630 }
    1631 
    -
    1632 [[nodiscard]] inline meta_type meta_func::ret() const ENTT_NOEXCEPT {
    -
    1633  return node->ret();
    -
    1634 }
    -
    1635 
    +
    1632 
    +
    1633 [[nodiscard]] inline meta_any meta_any::get(const id_type id) {
    +
    1634  return type().get(id, *this);
    +
    1635 }
    1636 
    -
    1637 [[nodiscard]] inline meta_type meta_func::arg(size_type index) const ENTT_NOEXCEPT {
    -
    1638  return index < arity() ? node->arg(index) : meta_type{};
    -
    1639 }
    -
    1640 
    +
    1637 
    +
    1638 [[nodiscard]] inline meta_type meta_ctor::parent() const ENTT_NOEXCEPT {
    +
    1639  return node->parent;
    +
    1640 }
    1641 
    -
    1643 class meta_sequence_container::meta_iterator {
    -
    1645  friend class meta_sequence_container;
    +
    1642 
    +
    1643 [[nodiscard]] inline meta_type meta_ctor::arg(size_type index) const ENTT_NOEXCEPT {
    +
    1644  return index < arity() ? node->arg(index) : meta_type{};
    +
    1645 }
    1646 
    -
    1647  enum class operation { INCR, DEREF };
    -
    1648 
    -
    1649  using vtable_type = void(const operation, const any &, void *);
    -
    1650 
    -
    1651  template<typename It>
    -
    1652  static void basic_vtable(const operation op, const any &from, void *to) {
    -
    1653  switch(op) {
    -
    1654  case operation::INCR:
    -
    1655  ++any_cast<It &>(const_cast<any &>(from));
    -
    1656  break;
    -
    1657  case operation::DEREF:
    -
    1658  static_cast<meta_any *>(to)->emplace<typename std::iterator_traits<It>::reference>(*any_cast<const It &>(from));
    -
    1659  break;
    -
    1660  }
    -
    1661  }
    +
    1647 
    +
    1648 [[nodiscard]] inline meta_type meta_data::parent() const ENTT_NOEXCEPT {
    +
    1649  return node->parent;
    +
    1650 }
    +
    1651 
    +
    1652 
    +
    1653 [[nodiscard]] inline meta_type meta_data::type() const ENTT_NOEXCEPT {
    +
    1654  return node->type();
    +
    1655 }
    +
    1656 
    +
    1657 
    +
    1658 [[nodiscard]] inline meta_type meta_func::parent() const ENTT_NOEXCEPT {
    +
    1659  return node->parent;
    +
    1660 }
    +
    1661 
    1662 
    -
    1663 public:
    -
    1665  using difference_type = std::ptrdiff_t;
    -
    1667  using value_type = meta_any;
    -
    1669  using pointer = void;
    -
    1671  using reference = value_type;
    -
    1673  using iterator_category = std::input_iterator_tag;
    -
    1674 
    -
    1676  meta_iterator() ENTT_NOEXCEPT = default;
    +
    1663 [[nodiscard]] inline meta_type meta_func::ret() const ENTT_NOEXCEPT {
    +
    1664  return node->ret();
    +
    1665 }
    +
    1666 
    +
    1667 
    +
    1668 [[nodiscard]] inline meta_type meta_func::arg(size_type index) const ENTT_NOEXCEPT {
    +
    1669  return index < arity() ? node->arg(index) : meta_type{};
    +
    1670 }
    +
    1671 
    +
    1672 
    +
    1674 class meta_sequence_container::meta_iterator {
    +
    1676  friend class meta_sequence_container;
    1677 
    -
    1683  template<typename It>
    -
    1684  meta_iterator(It iter)
    -
    1685  : vtable{&basic_vtable<It>},
    -
    1686  handle{std::move(iter)}
    -
    1687  {}
    -
    1688 
    -
    1690  meta_iterator & operator++() ENTT_NOEXCEPT {
    -
    1691  return vtable(operation::INCR, handle, nullptr), *this;
    +
    1678  enum class operation { INCR, DEREF };
    +
    1679 
    +
    1680  using vtable_type = void(const operation, const any &, void *);
    +
    1681 
    +
    1682  template<typename It>
    +
    1683  static void basic_vtable(const operation op, const any &from, void *to) {
    +
    1684  switch(op) {
    +
    1685  case operation::INCR:
    +
    1686  ++any_cast<It &>(const_cast<any &>(from));
    +
    1687  break;
    +
    1688  case operation::DEREF:
    +
    1689  static_cast<meta_any *>(to)->emplace<typename std::iterator_traits<It>::reference>(*any_cast<const It &>(from));
    +
    1690  break;
    +
    1691  }
    1692  }
    1693 
    -
    1695  meta_iterator operator++(int) ENTT_NOEXCEPT {
    -
    1696  meta_iterator orig = *this;
    -
    1697  return ++(*this), orig;
    -
    1698  }
    -
    1699 
    -
    1705  [[nodiscard]] bool operator==(const meta_iterator &other) const ENTT_NOEXCEPT {
    -
    1706  return handle == other.handle;
    -
    1707  }
    +
    1694 public:
    +
    1696  using difference_type = std::ptrdiff_t;
    +
    1698  using value_type = meta_any;
    +
    1700  using pointer = void;
    +
    1702  using reference = value_type;
    +
    1704  using iterator_category = std::input_iterator_tag;
    +
    1705 
    +
    1707  meta_iterator() ENTT_NOEXCEPT = default;
    1708 
    -
    1714  [[nodiscard]] bool operator!=(const meta_iterator &other) const ENTT_NOEXCEPT {
    -
    1715  return !(*this == other);
    -
    1716  }
    -
    1717 
    -
    1722  [[nodiscard]] reference operator*() const {
    -
    1723  meta_any other;
    -
    1724  vtable(operation::DEREF, handle, &other);
    -
    1725  return other;
    -
    1726  }
    -
    1727 
    -
    1732  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    1733  return static_cast<bool>(handle);
    -
    1734  }
    -
    1735 
    -
    1736 private:
    -
    1737  vtable_type *vtable{};
    -
    1738  any handle{};
    -
    1739 };
    -
    1740 
    -
    1741 
    -
    1742 template<typename Type>
    -
    1743 struct meta_sequence_container::meta_sequence_container_proxy {
    -
    1744  using traits_type = meta_sequence_container_traits<Type>;
    -
    1745 
    -
    1746  [[nodiscard]] static meta_type value_type() ENTT_NOEXCEPT {
    -
    1747  return internal::meta_info<typename Type::value_type>::resolve();
    -
    1748  }
    -
    1749 
    -
    1750  [[nodiscard]] static size_type size(const any &container) ENTT_NOEXCEPT {
    -
    1751  return traits_type::size(any_cast<const Type &>(container));
    -
    1752  }
    -
    1753 
    -
    1754  [[nodiscard]] static bool resize(any &container, size_type sz) {
    -
    1755  auto * const cont = any_cast<Type>(&container);
    -
    1756  return cont ? traits_type::resize(*cont, sz) : false;
    +
    1714  template<typename It>
    +
    1715  meta_iterator(It iter)
    +
    1716  : vtable{&basic_vtable<It>},
    +
    1717  handle{std::move(iter)}
    +
    1718  {}
    +
    1719 
    +
    1721  meta_iterator & operator++() ENTT_NOEXCEPT {
    +
    1722  return vtable(operation::INCR, handle, nullptr), *this;
    +
    1723  }
    +
    1724 
    +
    1726  meta_iterator operator++(int) ENTT_NOEXCEPT {
    +
    1727  meta_iterator orig = *this;
    +
    1728  return ++(*this), orig;
    +
    1729  }
    +
    1730 
    +
    1736  [[nodiscard]] bool operator==(const meta_iterator &other) const ENTT_NOEXCEPT {
    +
    1737  return handle == other.handle;
    +
    1738  }
    +
    1739 
    +
    1745  [[nodiscard]] bool operator!=(const meta_iterator &other) const ENTT_NOEXCEPT {
    +
    1746  return !(*this == other);
    +
    1747  }
    +
    1748 
    +
    1753  [[nodiscard]] reference operator*() const {
    +
    1754  meta_any other;
    +
    1755  vtable(operation::DEREF, handle, &other);
    +
    1756  return other;
    1757  }
    1758 
    -
    1759  [[nodiscard]] static bool clear(any &container) {
    -
    1760  auto * const cont = any_cast<Type>(&container);
    -
    1761  return cont ? traits_type::clear(*cont) : false;
    -
    1762  }
    -
    1763 
    -
    1764  [[nodiscard]] static iterator begin(any &container) {
    -
    1765  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    1766  return iterator{traits_type::begin(*cont)};
    -
    1767  }
    -
    1768 
    -
    1769  return iterator{traits_type::cbegin(any_cast<const Type &>(container))};
    -
    1770  }
    +
    1763  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    1764  return static_cast<bool>(handle);
    +
    1765  }
    +
    1766 
    +
    1767 private:
    +
    1768  vtable_type *vtable{};
    +
    1769  any handle{};
    +
    1770 };
    1771 
    -
    1772  [[nodiscard]] static iterator end(any &container) {
    -
    1773  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    1774  return iterator{traits_type::end(*cont)};
    -
    1775  }
    +
    1772 
    +
    1773 template<typename Type>
    +
    1774 struct meta_sequence_container::meta_sequence_container_proxy {
    +
    1775  using traits_type = meta_sequence_container_traits<Type>;
    1776 
    -
    1777  return iterator{traits_type::cend(any_cast<const Type &>(container))};
    -
    1778  }
    -
    1779 
    -
    1780  [[nodiscard]] static std::pair<iterator, bool> insert(any &container, iterator it, meta_any &value) {
    -
    1781  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    1782  // this abomination is necessary because only on macos value_type and const_reference are different types for std::vector<bool>
    -
    1783  if(value.allow_cast<typename Type::const_reference>() || value.allow_cast<typename Type::value_type>()) {
    -
    1784  const auto *element = value.try_cast<std::remove_reference_t<typename Type::const_reference>>();
    -
    1785  auto ret = traits_type::insert(*cont, any_cast<const typename Type::iterator &>(it.handle), element ? *element : value.cast<typename Type::value_type>());
    -
    1786  return { iterator{std::move(ret.first)}, ret.second };
    -
    1787  }
    -
    1788  }
    +
    1777  [[nodiscard]] static meta_type value_type() ENTT_NOEXCEPT {
    +
    1778  return internal::meta_info<typename Type::value_type>::resolve();
    +
    1779  }
    +
    1780 
    +
    1781  [[nodiscard]] static size_type size(const any &container) ENTT_NOEXCEPT {
    +
    1782  return traits_type::size(any_cast<const Type &>(container));
    +
    1783  }
    +
    1784 
    +
    1785  [[nodiscard]] static bool resize(any &container, size_type sz) {
    +
    1786  auto * const cont = any_cast<Type>(&container);
    +
    1787  return cont && traits_type::resize(*cont, sz);
    +
    1788  }
    1789 
    -
    1790  return {};
    -
    1791  }
    -
    1792 
    -
    1793  [[nodiscard]] static std::pair<iterator, bool> erase(any &container, iterator it) {
    -
    1794  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    1795  auto ret = traits_type::erase(*cont, any_cast<const typename Type::iterator &>(it.handle));
    -
    1796  return { iterator{std::move(ret.first)}, ret.second };
    -
    1797  }
    -
    1798 
    -
    1799  return {};
    -
    1800  }
    -
    1801 
    -
    1802  [[nodiscard]] static meta_any get(any &container, size_type pos) {
    -
    1803  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    1804  return meta_any{std::in_place_type<typename Type::reference>, traits_type::get(*cont, pos)};
    -
    1805  }
    -
    1806 
    -
    1807  return meta_any{std::in_place_type<typename Type::const_reference>, traits_type::cget(any_cast<const Type &>(container), pos)};
    -
    1808  }
    -
    1809 };
    +
    1790  [[nodiscard]] static bool clear(any &container) {
    +
    1791  auto * const cont = any_cast<Type>(&container);
    +
    1792  return cont && traits_type::clear(*cont);
    +
    1793  }
    +
    1794 
    +
    1795  [[nodiscard]] static iterator begin(any &container) {
    +
    1796  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    1797  return iterator{traits_type::begin(*cont)};
    +
    1798  }
    +
    1799 
    +
    1800  return iterator{traits_type::cbegin(any_cast<const Type &>(container))};
    +
    1801  }
    +
    1802 
    +
    1803  [[nodiscard]] static iterator end(any &container) {
    +
    1804  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    1805  return iterator{traits_type::end(*cont)};
    +
    1806  }
    +
    1807 
    +
    1808  return iterator{traits_type::cend(any_cast<const Type &>(container))};
    +
    1809  }
    1810 
    -
    1811 
    -
    1816 [[nodiscard]] inline meta_type meta_sequence_container::value_type() const ENTT_NOEXCEPT {
    -
    1817  return value_type_fn();
    -
    1818 }
    -
    1819 
    +
    1811  [[nodiscard]] static std::pair<iterator, bool> insert(any &container, iterator it, meta_any &value) {
    +
    1812  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    1813  // this abomination is necessary because only on macos value_type and const_reference are different types for std::vector<bool>
    +
    1814  if(value.allow_cast<typename Type::const_reference>() || value.allow_cast<typename Type::value_type>()) {
    +
    1815  const auto *element = value.try_cast<std::remove_reference_t<typename Type::const_reference>>();
    +
    1816  auto ret = traits_type::insert(*cont, any_cast<const typename Type::iterator &>(it.handle), element ? *element : value.cast<typename Type::value_type>());
    +
    1817  return { iterator{std::move(ret.first)}, ret.second };
    +
    1818  }
    +
    1819  }
    1820 
    -
    1825 [[nodiscard]] inline meta_sequence_container::size_type meta_sequence_container::size() const ENTT_NOEXCEPT {
    -
    1826  return size_fn(storage);
    -
    1827 }
    -
    1828 
    +
    1821  return {};
    +
    1822  }
    +
    1823 
    +
    1824  [[nodiscard]] static std::pair<iterator, bool> erase(any &container, iterator it) {
    +
    1825  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    1826  auto ret = traits_type::erase(*cont, any_cast<const typename Type::iterator &>(it.handle));
    +
    1827  return { iterator{std::move(ret.first)}, ret.second };
    +
    1828  }
    1829 
    -
    1835 inline bool meta_sequence_container::resize(size_type sz) {
    -
    1836  return resize_fn(storage, sz);
    -
    1837 }
    -
    1838 
    -
    1839 
    -
    1844 inline bool meta_sequence_container::clear() {
    -
    1845  return clear_fn(storage);
    -
    1846 }
    -
    1847 
    -
    1848 
    -
    1853 [[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::begin() {
    -
    1854  return begin_fn(storage);
    -
    1855 }
    -
    1856 
    -
    1857 
    -
    1862 [[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::end() {
    -
    1863  return end_fn(storage);
    -
    1864 }
    -
    1865 
    -
    1866 
    -
    1874 inline std::pair<meta_sequence_container::iterator, bool> meta_sequence_container::insert(iterator it, meta_any value) {
    -
    1875  return insert_fn(storage, it, value);
    -
    1876 }
    -
    1877 
    +
    1830  return {};
    +
    1831  }
    +
    1832 
    +
    1833  [[nodiscard]] static meta_any get(any &container, size_type pos) {
    +
    1834  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    1835  return meta_any{std::in_place_type<typename Type::reference>, traits_type::get(*cont, pos)};
    +
    1836  }
    +
    1837 
    +
    1838  return meta_any{std::in_place_type<typename Type::const_reference>, traits_type::cget(any_cast<const Type &>(container), pos)};
    +
    1839  }
    +
    1840 };
    +
    1841 
    +
    1842 
    +
    1847 [[nodiscard]] inline meta_type meta_sequence_container::value_type() const ENTT_NOEXCEPT {
    +
    1848  return value_type_fn();
    +
    1849 }
    +
    1850 
    +
    1851 
    +
    1856 [[nodiscard]] inline meta_sequence_container::size_type meta_sequence_container::size() const ENTT_NOEXCEPT {
    +
    1857  return size_fn(storage);
    +
    1858 }
    +
    1859 
    +
    1860 
    +
    1866 inline bool meta_sequence_container::resize(size_type sz) {
    +
    1867  return resize_fn(storage, sz);
    +
    1868 }
    +
    1869 
    +
    1870 
    +
    1875 inline bool meta_sequence_container::clear() {
    +
    1876  return clear_fn(storage);
    +
    1877 }
    1878 
    -
    1885 inline std::pair<meta_sequence_container::iterator, bool> meta_sequence_container::erase(iterator it) {
    -
    1886  return erase_fn(storage, it);
    -
    1887 }
    +
    1879 
    +
    1884 [[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::begin() {
    +
    1885  return begin_fn(storage);
    +
    1886 }
    +
    1887 
    1888 
    -
    1889 
    -
    1896 [[nodiscard]] inline meta_any meta_sequence_container::operator[](size_type pos) {
    -
    1897  return get_fn(storage, pos);
    -
    1898 }
    -
    1899 
    -
    1900 
    -
    1905 [[nodiscard]] inline meta_sequence_container::operator bool() const ENTT_NOEXCEPT {
    -
    1906  return static_cast<bool>(storage);
    +
    1893 [[nodiscard]] inline meta_sequence_container::iterator meta_sequence_container::end() {
    +
    1894  return end_fn(storage);
    +
    1895 }
    +
    1896 
    +
    1897 
    +
    1905 inline std::pair<meta_sequence_container::iterator, bool> meta_sequence_container::insert(iterator it, meta_any value) {
    +
    1906  return insert_fn(storage, it, value);
    1907 }
    1908 
    1909 
    -
    1911 class meta_associative_container::meta_iterator {
    -
    1912  enum operation { INCR, DEREF };
    -
    1913 
    -
    1914  using vtable_type = void(const operation, const any &, void *);
    -
    1915 
    -
    1916  template<bool KeyOnly, typename It>
    -
    1917  static void basic_vtable(const operation op, const any &from, void *to) {
    -
    1918  switch(op) {
    -
    1919  case operation::INCR:
    -
    1920  ++any_cast<It &>(const_cast<any &>(from));
    -
    1921  break;
    -
    1922  case operation::DEREF:
    -
    1923  if constexpr(KeyOnly) {
    -
    1924  static_cast<std::pair<meta_any, meta_any> *>(to)->first = std::cref(*any_cast<const It &>(from));
    -
    1925  } else {
    -
    1926  *static_cast<std::pair<meta_any, meta_any> *>(to) = std::make_pair<meta_any, meta_any>(std::cref(any_cast<const It &>(from)->first), std::ref(any_cast<const It &>(from)->second));
    -
    1927  }
    -
    1928  break;
    -
    1929  }
    -
    1930  }
    +
    1916 inline std::pair<meta_sequence_container::iterator, bool> meta_sequence_container::erase(iterator it) {
    +
    1917  return erase_fn(storage, it);
    +
    1918 }
    +
    1919 
    +
    1920 
    +
    1927 [[nodiscard]] inline meta_any meta_sequence_container::operator[](size_type pos) {
    +
    1928  return get_fn(storage, pos);
    +
    1929 }
    +
    1930 
    1931 
    -
    1932 public:
    -
    1934  using difference_type = std::ptrdiff_t;
    -
    1936  using value_type = std::pair<meta_any, meta_any>;
    -
    1938  using pointer = void;
    -
    1940  using reference = value_type;
    -
    1942  using iterator_category = std::input_iterator_tag;
    -
    1943 
    -
    1945  meta_iterator() ENTT_NOEXCEPT = default;
    +
    1936 [[nodiscard]] inline meta_sequence_container::operator bool() const ENTT_NOEXCEPT {
    +
    1937  return static_cast<bool>(storage);
    +
    1938 }
    +
    1939 
    +
    1940 
    +
    1942 class meta_associative_container::meta_iterator {
    +
    1943  enum operation { INCR, DEREF };
    +
    1944 
    +
    1945  using vtable_type = void(const operation, const any &, void *);
    1946 
    -
    1953  template<bool KeyOnly, typename It>
    -
    1954  meta_iterator(std::integral_constant<bool, KeyOnly>, It iter)
    -
    1955  : vtable{&basic_vtable<KeyOnly, It>},
    -
    1956  handle{std::move(iter)}
    -
    1957  {}
    -
    1958 
    -
    1960  meta_iterator & operator++() ENTT_NOEXCEPT {
    -
    1961  return vtable(operation::INCR, handle, nullptr), *this;
    -
    1962  }
    -
    1963 
    -
    1965  meta_iterator operator++(int) ENTT_NOEXCEPT {
    -
    1966  meta_iterator orig = *this;
    -
    1967  return ++(*this), orig;
    -
    1968  }
    -
    1969 
    -
    1975  [[nodiscard]] bool operator==(const meta_iterator &other) const ENTT_NOEXCEPT {
    -
    1976  return handle == other.handle;
    -
    1977  }
    -
    1978 
    -
    1984  [[nodiscard]] bool operator!=(const meta_iterator &other) const ENTT_NOEXCEPT {
    -
    1985  return !(*this == other);
    -
    1986  }
    -
    1987 
    -
    1992  [[nodiscard]] reference operator*() const {
    -
    1993  reference other;
    -
    1994  vtable(operation::DEREF, handle, &other);
    -
    1995  return other;
    -
    1996  }
    -
    1997 
    -
    2002  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    2003  return static_cast<bool>(handle);
    -
    2004  }
    -
    2005 
    -
    2006 private:
    -
    2007  vtable_type *vtable{};
    -
    2008  any handle{};
    -
    2009 };
    -
    2010 
    +
    1947  template<bool KeyOnly, typename It>
    +
    1948  static void basic_vtable(const operation op, const any &from, void *to) {
    +
    1949  switch(op) {
    +
    1950  case operation::INCR:
    +
    1951  ++any_cast<It &>(const_cast<any &>(from));
    +
    1952  break;
    +
    1953  case operation::DEREF:
    +
    1954  const auto &it = any_cast<const It &>(from);
    +
    1955  if constexpr(KeyOnly) {
    +
    1956  static_cast<std::pair<meta_any, meta_any> *>(to)->first.emplace<decltype(*it)>(*it);
    +
    1957  } else {
    +
    1958  static_cast<std::pair<meta_any, meta_any> *>(to)->first.emplace<decltype((it->first))>(it->first);
    +
    1959  static_cast<std::pair<meta_any, meta_any> *>(to)->second.emplace<decltype((it->second))>(it->second);
    +
    1960  }
    +
    1961  break;
    +
    1962  }
    +
    1963  }
    +
    1964 
    +
    1965 public:
    +
    1967  using difference_type = std::ptrdiff_t;
    +
    1969  using value_type = std::pair<meta_any, meta_any>;
    +
    1971  using pointer = void;
    +
    1973  using reference = value_type;
    +
    1975  using iterator_category = std::input_iterator_tag;
    +
    1976 
    +
    1978  meta_iterator() ENTT_NOEXCEPT = default;
    +
    1979 
    +
    1986  template<bool KeyOnly, typename It>
    +
    1987  meta_iterator(std::integral_constant<bool, KeyOnly>, It iter)
    +
    1988  : vtable{&basic_vtable<KeyOnly, It>},
    +
    1989  handle{std::move(iter)}
    +
    1990  {}
    +
    1991 
    +
    1993  meta_iterator & operator++() ENTT_NOEXCEPT {
    +
    1994  return vtable(operation::INCR, handle, nullptr), *this;
    +
    1995  }
    +
    1996 
    +
    1998  meta_iterator operator++(int) ENTT_NOEXCEPT {
    +
    1999  meta_iterator orig = *this;
    +
    2000  return ++(*this), orig;
    +
    2001  }
    +
    2002 
    +
    2008  [[nodiscard]] bool operator==(const meta_iterator &other) const ENTT_NOEXCEPT {
    +
    2009  return handle == other.handle;
    +
    2010  }
    2011 
    -
    2012 template<typename Type>
    -
    2013 struct meta_associative_container::meta_associative_container_proxy {
    -
    2014  using traits_type = meta_associative_container_traits<Type>;
    -
    2015 
    -
    2016  [[nodiscard]] static meta_type key_type() ENTT_NOEXCEPT {
    -
    2017  return internal::meta_info<typename Type::key_type>::resolve();
    -
    2018  }
    -
    2019 
    -
    2020  [[nodiscard]] static meta_type mapped_type() ENTT_NOEXCEPT {
    -
    2021  if constexpr(is_key_only_meta_associative_container_v<Type>) {
    -
    2022  return meta_type{};
    -
    2023  } else {
    -
    2024  return internal::meta_info<typename Type::mapped_type>::resolve();
    -
    2025  }
    -
    2026  }
    -
    2027 
    -
    2028  [[nodiscard]] static meta_type value_type() ENTT_NOEXCEPT {
    -
    2029  return internal::meta_info<typename Type::value_type>::resolve();
    -
    2030  }
    -
    2031 
    -
    2032  [[nodiscard]] static size_type size(const any &container) ENTT_NOEXCEPT {
    -
    2033  return traits_type::size(any_cast<const Type &>(container));
    -
    2034  }
    -
    2035 
    -
    2036  [[nodiscard]] static bool clear(any &container) {
    -
    2037  auto * const cont = any_cast<Type>(&container);
    -
    2038  return cont ? traits_type::clear(*cont) : false;
    -
    2039  }
    -
    2040 
    -
    2041  [[nodiscard]] static iterator begin(any &container) {
    -
    2042  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    2043  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::begin(*cont)};
    -
    2044  }
    -
    2045 
    -
    2046  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cbegin(any_cast<const Type &>(container))};
    -
    2047  }
    +
    2017  [[nodiscard]] bool operator!=(const meta_iterator &other) const ENTT_NOEXCEPT {
    +
    2018  return !(*this == other);
    +
    2019  }
    +
    2020 
    +
    2025  [[nodiscard]] reference operator*() const {
    +
    2026  reference other;
    +
    2027  vtable(operation::DEREF, handle, &other);
    +
    2028  return other;
    +
    2029  }
    +
    2030 
    +
    2035  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    2036  return static_cast<bool>(handle);
    +
    2037  }
    +
    2038 
    +
    2039 private:
    +
    2040  vtable_type *vtable{};
    +
    2041  any handle{};
    +
    2042 };
    +
    2043 
    +
    2044 
    +
    2045 template<typename Type>
    +
    2046 struct meta_associative_container::meta_associative_container_proxy {
    +
    2047  using traits_type = meta_associative_container_traits<Type>;
    2048 
    -
    2049  [[nodiscard]] static iterator end(any &container) {
    -
    2050  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    2051  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::end(*cont)};
    -
    2052  }
    -
    2053 
    -
    2054  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cend(any_cast<const Type &>(container))};
    -
    2055  }
    -
    2056 
    -
    2057  [[nodiscard]] static bool insert(any &container, meta_any &key, meta_any &value) {
    -
    2058  if(auto * const cont = any_cast<Type>(&container); cont && key.allow_cast<const typename Type::key_type &>()) {
    -
    2059  if constexpr(is_key_only_meta_associative_container_v<Type>) {
    -
    2060  return traits_type::insert(*cont, key.cast<const typename Type::key_type &>());
    -
    2061  } else {
    -
    2062  if(value.allow_cast<const typename Type::mapped_type &>()) {
    -
    2063  return traits_type::insert(*cont, key.cast<const typename Type::key_type &>(), value.cast<const typename Type::mapped_type &>());
    -
    2064  }
    -
    2065  }
    -
    2066  }
    -
    2067 
    -
    2068  return false;
    -
    2069  }
    -
    2070 
    -
    2071  [[nodiscard]] static bool erase(any &container, meta_any &key) {
    -
    2072  if(auto * const cont = any_cast<Type>(&container); cont && key.allow_cast<const typename Type::key_type &>()) {
    -
    2073  return traits_type::erase(*cont, key.cast<const typename Type::key_type &>());
    -
    2074  }
    -
    2075 
    -
    2076  return false;
    -
    2077  }
    +
    2049  [[nodiscard]] static meta_type key_type() ENTT_NOEXCEPT {
    +
    2050  return internal::meta_info<typename Type::key_type>::resolve();
    +
    2051  }
    +
    2052 
    +
    2053  [[nodiscard]] static meta_type mapped_type() ENTT_NOEXCEPT {
    +
    2054  if constexpr(is_key_only_meta_associative_container_v<Type>) {
    +
    2055  return meta_type{};
    +
    2056  } else {
    +
    2057  return internal::meta_info<typename Type::mapped_type>::resolve();
    +
    2058  }
    +
    2059  }
    +
    2060 
    +
    2061  [[nodiscard]] static meta_type value_type() ENTT_NOEXCEPT {
    +
    2062  return internal::meta_info<typename Type::value_type>::resolve();
    +
    2063  }
    +
    2064 
    +
    2065  [[nodiscard]] static size_type size(const any &container) ENTT_NOEXCEPT {
    +
    2066  return traits_type::size(any_cast<const Type &>(container));
    +
    2067  }
    +
    2068 
    +
    2069  [[nodiscard]] static bool clear(any &container) {
    +
    2070  auto * const cont = any_cast<Type>(&container);
    +
    2071  return cont && traits_type::clear(*cont);
    +
    2072  }
    +
    2073 
    +
    2074  [[nodiscard]] static iterator begin(any &container) {
    +
    2075  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    2076  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::begin(*cont)};
    +
    2077  }
    2078 
    -
    2079  [[nodiscard]] static iterator find(any &container, meta_any &key) {
    -
    2080  if(key.allow_cast<const typename Type::key_type &>()) {
    -
    2081  if(auto * const cont = any_cast<Type>(&container); cont) {
    -
    2082  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::find(*cont, key.cast<const typename Type::key_type &>())};
    -
    2083  }
    -
    2084 
    -
    2085  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cfind(any_cast<const Type &>(container), key.cast<const typename Type::key_type &>())};
    -
    2086  }
    -
    2087 
    -
    2088  return {};
    -
    2089  }
    -
    2090 };
    -
    2091 
    -
    2092 
    -
    2097 [[nodiscard]] inline bool meta_associative_container::key_only() const ENTT_NOEXCEPT {
    -
    2098  return key_only_container;
    -
    2099 }
    -
    2100 
    -
    2101 
    -
    2106 [[nodiscard]] inline meta_type meta_associative_container::key_type() const ENTT_NOEXCEPT {
    -
    2107  return key_type_fn();
    -
    2108 }
    -
    2109 
    +
    2079  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cbegin(any_cast<const Type &>(container))};
    +
    2080  }
    +
    2081 
    +
    2082  [[nodiscard]] static iterator end(any &container) {
    +
    2083  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    2084  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::end(*cont)};
    +
    2085  }
    +
    2086 
    +
    2087  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cend(any_cast<const Type &>(container))};
    +
    2088  }
    +
    2089 
    +
    2090  [[nodiscard]] static bool insert(any &container, meta_any &key, meta_any &value) {
    +
    2091  if(auto * const cont = any_cast<Type>(&container); cont && key.allow_cast<const typename Type::key_type &>()) {
    +
    2092  if constexpr(is_key_only_meta_associative_container_v<Type>) {
    +
    2093  return traits_type::insert(*cont, key.cast<const typename Type::key_type &>());
    +
    2094  } else {
    +
    2095  return value.allow_cast<const typename Type::mapped_type &>()
    +
    2096  && traits_type::insert(*cont, key.cast<const typename Type::key_type &>(), value.cast<const typename Type::mapped_type &>());
    +
    2097  }
    +
    2098  }
    +
    2099 
    +
    2100  return false;
    +
    2101  }
    +
    2102 
    +
    2103  [[nodiscard]] static bool erase(any &container, meta_any &key) {
    +
    2104  if(auto * const cont = any_cast<Type>(&container); cont && key.allow_cast<const typename Type::key_type &>()) {
    +
    2105  return traits_type::erase(*cont, key.cast<const typename Type::key_type &>());
    +
    2106  }
    +
    2107 
    +
    2108  return false;
    +
    2109  }
    2110 
    -
    2115 [[nodiscard]] inline meta_type meta_associative_container::mapped_type() const ENTT_NOEXCEPT {
    -
    2116  return mapped_type_fn();
    -
    2117 }
    -
    2118 
    +
    2111  [[nodiscard]] static iterator find(any &container, meta_any &key) {
    +
    2112  if(key.allow_cast<const typename Type::key_type &>()) {
    +
    2113  if(auto * const cont = any_cast<Type>(&container); cont) {
    +
    2114  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::find(*cont, key.cast<const typename Type::key_type &>())};
    +
    2115  }
    +
    2116 
    +
    2117  return iterator{is_key_only_meta_associative_container<Type>{}, traits_type::cfind(any_cast<const Type &>(container), key.cast<const typename Type::key_type &>())};
    +
    2118  }
    2119 
    -
    2121 [[nodiscard]] inline meta_type meta_associative_container::value_type() const ENTT_NOEXCEPT {
    -
    2122  return value_type_fn();
    -
    2123 }
    +
    2120  return {};
    +
    2121  }
    +
    2122 };
    +
    2123 
    2124 
    -
    2125 
    -
    2127 [[nodiscard]] inline meta_associative_container::size_type meta_associative_container::size() const ENTT_NOEXCEPT {
    -
    2128  return size_fn(storage);
    -
    2129 }
    -
    2130 
    -
    2131 
    -
    2133 inline bool meta_associative_container::clear() {
    -
    2134  return clear_fn(storage);
    -
    2135 }
    -
    2136 
    -
    2137 
    -
    2139 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::begin() {
    -
    2140  return begin_fn(storage);
    -
    2141 }
    +
    2129 [[nodiscard]] inline bool meta_associative_container::key_only() const ENTT_NOEXCEPT {
    +
    2130  return key_only_container;
    +
    2131 }
    +
    2132 
    +
    2133 
    +
    2138 [[nodiscard]] inline meta_type meta_associative_container::key_type() const ENTT_NOEXCEPT {
    +
    2139  return key_type_fn();
    +
    2140 }
    +
    2141 
    2142 
    -
    2143 
    -
    2145 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::end() {
    -
    2146  return end_fn(storage);
    -
    2147 }
    -
    2148 
    -
    2149 
    -
    2156 inline bool meta_associative_container::insert(meta_any key, meta_any value = {}) {
    -
    2157  return insert_fn(storage, key, value);
    -
    2158 }
    -
    2159 
    -
    2160 
    -
    2166 inline bool meta_associative_container::erase(meta_any key) {
    -
    2167  return erase_fn(storage, key);
    -
    2168 }
    +
    2147 [[nodiscard]] inline meta_type meta_associative_container::mapped_type() const ENTT_NOEXCEPT {
    +
    2148  return mapped_type_fn();
    +
    2149 }
    +
    2150 
    +
    2151 
    +
    2153 [[nodiscard]] inline meta_type meta_associative_container::value_type() const ENTT_NOEXCEPT {
    +
    2154  return value_type_fn();
    +
    2155 }
    +
    2156 
    +
    2157 
    +
    2159 [[nodiscard]] inline meta_associative_container::size_type meta_associative_container::size() const ENTT_NOEXCEPT {
    +
    2160  return size_fn(storage);
    +
    2161 }
    +
    2162 
    +
    2163 
    +
    2165 inline bool meta_associative_container::clear() {
    +
    2166  return clear_fn(storage);
    +
    2167 }
    +
    2168 
    2169 
    -
    2170 
    -
    2176 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::find(meta_any key) {
    -
    2177  return find_fn(storage, key);
    -
    2178 }
    -
    2179 
    +
    2171 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::begin() {
    +
    2172  return begin_fn(storage);
    +
    2173 }
    +
    2174 
    +
    2175 
    +
    2177 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::end() {
    +
    2178  return end_fn(storage);
    +
    2179 }
    2180 
    -
    2185 [[nodiscard]] inline meta_associative_container::operator bool() const ENTT_NOEXCEPT {
    -
    2186  return static_cast<bool>(storage);
    -
    2187 }
    -
    2188 
    -
    2189 
    +
    2181 
    +
    2188 inline bool meta_associative_container::insert(meta_any key, meta_any value = {}) {
    +
    2189  return insert_fn(storage, key, value);
    2190 }
    2191 
    2192 
    -
    2193 #endif
    - -
    entt::meta_data::type
    meta_type type() const noexcept
    Returns the type of the underlying object.
    Definition: meta.hpp:1622
    -
    entt::meta_func::node_type
    internal::meta_func_node node_type
    Node type.
    Definition: meta.hpp:886
    -
    entt::meta_associative_container::meta_iterator::value_type
    std::pair< meta_any, meta_any > value_type
    Type of elements returned by the iterator.
    Definition: meta.hpp:1936
    -
    entt::meta_type::is_template_specialization
    bool is_template_specialization() const noexcept
    Checks whether a type refers to a recognized class template specialization or not.
    Definition: meta.hpp:1204
    -
    entt::meta_any::meta_any
    meta_any(meta_any &&other) noexcept
    Move constructor.
    Definition: meta.hpp:269
    -
    entt::meta_type::is_array
    bool is_array() const noexcept
    Checks whether a type refers to an array type or not.
    Definition: meta.hpp:1109
    -
    entt::meta_data::parent
    meta_type parent() const noexcept
    Returns the type to which an object belongs.
    Definition: meta.hpp:1617
    -
    entt::meta_sequence_container::iterator
    meta_iterator iterator
    Meta iterator type.
    Definition: meta.hpp:43
    -
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:159
    -
    entt::meta_type::rank
    size_type rank() const noexcept
    Provides the number of dimensions of an array type.
    Definition: meta.hpp:1240
    -
    entt::meta_any::operator==
    bool operator==(const meta_any &other) const
    Checks if two wrappers differ in their content.
    Definition: meta.hpp:530
    -
    entt::meta_sequence_container::meta_iterator::operator*
    reference operator*() const
    Indirection operator.
    Definition: meta.hpp:1722
    -
    entt::meta_ctor::parent
    meta_type parent() const noexcept
    Returns the type to which an object belongs.
    Definition: meta.hpp:1607
    -
    entt::meta_associative_container::meta_iterator::operator++
    meta_iterator & operator++() noexcept
    Pre-increment operator.
    Definition: meta.hpp:1960
    -
    entt::meta_sequence_container
    Proxy object for sequence containers.
    Definition: meta.hpp:33
    -
    entt::meta_func::invoke
    meta_any invoke(meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:955
    -
    entt::meta_data
    Opaque wrapper for data members.
    Definition: meta.hpp:788
    -
    entt::meta_ctor::node_type
    internal::meta_ctor_node node_type
    Node type.
    Definition: meta.hpp:698
    -
    entt::meta_data::meta_data
    meta_data(const node_type *curr=nullptr) noexcept
    Constructs an instance from a given node.
    Definition: meta.hpp:793
    -
    entt::meta_func::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:985
    -
    entt::meta_type::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:1041
    -
    entt::meta_any::meta_any
    meta_any(std::in_place_type_t< Type >, Args &&... args)
    Constructs a meta any by directly initializing the new object.
    Definition: meta.hpp:233
    -
    entt::meta_associative_container
    Proxy object for associative containers.
    Definition: meta.hpp:93
    -
    entt::meta_type::func
    meta_func func(const id_type id) const
    Returns the function associated with a given identifier.
    Definition: meta.hpp:1345
    -
    entt::meta_any::as_associative_container
    meta_associative_container as_associative_container() const noexcept
    Returns an associative container proxy.
    Definition: meta.hpp:493
    -
    entt::meta_any::as_sequence_container
    meta_sequence_container as_sequence_container() const noexcept
    Returns a sequence container proxy.
    Definition: meta.hpp:476
    -
    entt::meta_associative_container::meta_iterator::difference_type
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition: meta.hpp:1934
    -
    entt::basic_any::as_ref
    basic_any as_ref() noexcept
    Aliasing constructor.
    Definition: any.hpp:320
    -
    entt::meta_func::id
    id_type id() const noexcept
    Returns the identifier assigned to a type.
    Definition: meta.hpp:896
    -
    entt::meta_sequence_container::meta_iterator
    Opaque iterator for sequence containers.
    Definition: meta.hpp:1643
    -
    entt::get
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    -
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    -
    entt::meta_func::invoke
    meta_any invoke(meta_handle instance, Args &&... args) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:970
    -
    entt::meta_type::is_function_pointer
    bool is_function_pointer() const noexcept
    Checks whether a type refers to a function pointer or not.
    Definition: meta.hpp:1150
    -
    entt::meta_associative_container::find
    iterator find(meta_any)
    Returns an iterator to the element with a given key, if any.
    Definition: meta.hpp:2176
    -
    entt::meta_ctor::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:770
    -
    entt::meta_associative_container::meta_iterator::meta_iterator
    meta_iterator() noexcept=default
    Default constructor.
    -
    entt::meta_sequence_container::resize
    bool resize(size_type)
    Resizes a container to contain a given number of elements.
    Definition: meta.hpp:1835
    -
    entt::meta_handle::meta_handle
    meta_handle(const meta_handle &)=delete
    Default copy constructor, deleted on purpose.
    -
    entt::meta_associative_container::meta_iterator::iterator_category
    std::input_iterator_tag iterator_category
    Iterator category.
    Definition: meta.hpp:1942
    -
    entt::meta_type::ctor
    meta_ctor ctor() const
    Returns a constructor for a given list of types of arguments.
    Definition: meta.hpp:1303
    -
    entt::meta_data::is_static
    bool is_static() const noexcept
    Indicates whether a data member is static or not.
    Definition: meta.hpp:817
    -
    entt::meta_type::template_arg
    meta_type template_arg(size_type index) const noexcept
    Returns the type of the i-th template argument of a type.
    Definition: meta.hpp:1232
    -
    entt::meta_data::is_const
    bool is_const() const noexcept
    Indicates whether a data member is constant or not.
    Definition: meta.hpp:809
    -
    entt::adl_meta_pointer_like
    Fake ADL based lookup function for meta pointer-like types.
    Definition: adl_pointer.hpp:25
    -
    entt::meta_any::cast
    Type cast()
    Tries to cast an instance to a given type.
    Definition: meta.hpp:404
    -
    entt::meta_func::ret
    meta_type ret() const noexcept
    Returns the return type of a member function.
    Definition: meta.hpp:1632
    -
    entt::meta_type::base
    meta_type base(const id_type id) const
    Returns the base meta type associated with a given identifier.
    Definition: meta.hpp:1285
    -
    entt::meta_sequence_container::erase
    std::pair< iterator, bool > erase(iterator)
    Removes a given element from a container.
    Definition: meta.hpp:1885
    -
    entt::meta_any::data
    const void * data() const noexcept
    Returns an opaque pointer to the contained instance.
    Definition: meta.hpp:302
    -
    entt::meta_prop::key
    meta_any key() const
    Returns the stored key as a const reference.
    Definition: meta.hpp:670
    -
    entt::meta_type::remove_pointer
    meta_type remove_pointer() const noexcept
    Provides the type for which the pointer is defined.
    Definition: meta.hpp:1259
    -
    entt::meta_sequence_container::meta_iterator::operator==
    bool operator==(const meta_iterator &other) const noexcept
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1705
    -
    entt::meta_type::operator==
    bool operator==(const meta_type &other) const noexcept
    Checks if two objects refer to the same type.
    Definition: meta.hpp:1510
    -
    entt::meta_any::as_ref
    meta_any as_ref() const noexcept
    Aliasing constructor.
    Definition: meta.hpp:557
    -
    entt::meta_prop
    Opaque wrapper for properties of any type.
    Definition: meta.hpp:654
    -
    entt::basic_storage
    Basic storage implementation.
    Definition: storage.hpp:52
    -
    entt::meta_any::operator*
    meta_any operator*() const noexcept
    Indirection operator for dereferencing opaque objects.
    Definition: meta.hpp:511
    +
    2198 inline bool meta_associative_container::erase(meta_any key) {
    +
    2199  return erase_fn(storage, key);
    +
    2200 }
    +
    2201 
    +
    2202 
    +
    2208 [[nodiscard]] inline meta_associative_container::iterator meta_associative_container::find(meta_any key) {
    +
    2209  return find_fn(storage, key);
    +
    2210 }
    +
    2211 
    +
    2212 
    +
    2217 [[nodiscard]] inline meta_associative_container::operator bool() const ENTT_NOEXCEPT {
    +
    2218  return static_cast<bool>(storage);
    +
    2219 }
    +
    2220 
    +
    2221 
    +
    2222 }
    +
    2223 
    +
    2224 
    +
    2225 #endif
    +
    entt::basic_any<>
    +
    entt::basic_any::as_ref
    basic_any as_ref()
    Aliasing constructor.
    Definition: any.hpp:335
    +
    entt::basic_sparse_set::data
    pointer data() const
    Direct access to the internal packed array.
    Definition: sparse_set.hpp:443
    +
    entt::basic_storage_impl::emplace
    value_type & emplace(const entity_type entt, Args &&... args)
    Assigns an entity to a storage and constructs its object.
    Definition: storage.hpp:537
    +
    entt::meta_any
    Opaque wrapper for values of any type.
    Definition: meta.hpp:158
    +
    entt::meta_any::meta_any
    meta_any()
    Default constructor.
    Definition: meta.hpp:207
    +
    entt::meta_any::operator*
    meta_any operator*() const
    Indirection operator for dereferencing opaque objects.
    Definition: meta.hpp:539
    +
    entt::meta_any::operator==
    bool operator==(const meta_any &other) const
    Checks if two wrappers differ in their content.
    Definition: meta.hpp:558
    +
    entt::meta_any::data
    const void * data() const
    Returns an opaque pointer to the contained instance.
    Definition: meta.hpp:332
    +
    entt::meta_any::cast
    Type cast()
    Tries to cast an instance to a given type.
    Definition: meta.hpp:434
    entt::meta_any::meta_any
    meta_any(const meta_any &other)=default
    Copy constructor.
    -
    entt::meta_handle::meta_handle
    meta_handle(meta_handle &&)=default
    Default move constructor.
    -
    entt::meta_type::prop
    meta_range< meta_prop > prop() const noexcept
    Returns a range to use to visit top-level properties.
    Definition: meta.hpp:1481
    -
    entt::meta_sequence_container::operator[]
    meta_any operator[](size_type)
    Returns a reference to the element at a given location of a container (no bounds checking is performe...
    Definition: meta.hpp:1896
    -
    entt::meta_type::extent
    size_type extent(size_type dim={}) const noexcept
    The number of elements along the given dimension of an array type.
    Definition: meta.hpp:1250
    -
    entt::meta_associative_container::meta_iterator::operator*
    reference operator*() const
    Indirection operator.
    Definition: meta.hpp:1992
    -
    entt::meta_ctor
    Opaque wrapper for constructors.
    Definition: meta.hpp:696
    -
    entt::meta_any::meta_any
    meta_any(std::reference_wrapper< Type > value)
    Constructs a meta any that holds an unmanaged object.
    Definition: meta.hpp:245
    -
    entt::meta_any::operator=
    meta_any & operator=(meta_any other)
    Assignment operator.
    Definition: meta.hpp:287
    -
    entt::meta_func::arg
    meta_type arg(size_type index) const noexcept
    Returns the type of the i-th argument of a member function.
    Definition: meta.hpp:1637
    -
    entt::meta_sequence_container::clear
    bool clear()
    Clears the content of a container.
    Definition: meta.hpp:1844
    -
    entt::meta_func::prop
    meta_range< meta_prop > prop() const noexcept
    Returns a range to use to visit all properties.
    Definition: meta.hpp:976
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::meta_type::meta_type
    meta_type(node_type *curr=nullptr) noexcept
    Constructs an instance from a given node.
    Definition: meta.hpp:1044
    -
    entt::integral_constant
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.
    Definition: type_traits.hpp:111
    -
    entt::meta_any::operator*
    meta_any operator*() noexcept
    Indirection operator for dereferencing opaque objects.
    Definition: meta.hpp:504
    -
    entt::meta_sequence_container::meta_iterator::operator!=
    bool operator!=(const meta_iterator &other) const noexcept
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1714
    +
    entt::meta_any::data
    void * data()
    Returns an opaque pointer to the contained instance.
    Definition: meta.hpp:337
    +
    entt::meta_any::get
    meta_any get(const id_type id) const
    Gets the value of a given variable.
    Definition: meta.hpp:1628
    +
    entt::meta_any::emplace
    void emplace(Args &&... args)
    Replaces the contained object by creating a new instance directly.
    Definition: meta.hpp:487
    +
    entt::meta_any::allow_cast
    meta_any allow_cast() const
    Converts an object in such a way that a given cast becomes viable.
    Definition: meta.hpp:448
    +
    entt::meta_any::as_sequence_container
    meta_sequence_container as_sequence_container()
    Returns a sequence container proxy.
    Definition: meta.hpp:504
    +
    entt::meta_any::meta_any
    meta_any(std::reference_wrapper< Type > value)
    Constructs a wrapper that holds an unmanaged object.
    Definition: meta.hpp:232
    +
    entt::meta_any::meta_any
    meta_any(Type &&value)
    Constructs a wrapper from a given value.
    Definition: meta.hpp:245
    +
    entt::meta_any::~meta_any
    ~meta_any()
    Frees the internal storage, whatever it means.
    Definition: meta.hpp:268
    +
    entt::meta_any::operator=
    meta_any & operator=(std::reference_wrapper< Type > value)
    Value assignment operator.
    Definition: meta.hpp:304
    +
    entt::meta_any::operator=
    meta_any & operator=(meta_any &&other)
    Move assignment operator.
    Definition: meta.hpp:289
    +
    entt::meta_any::cast
    Type cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:426
    +
    entt::meta_any::as_sequence_container
    meta_sequence_container as_sequence_container() const
    Returns a sequence container proxy.
    Definition: meta.hpp:511
    +
    entt::meta_any::type
    meta_type type() const
    Returns the type of the underlying object.
    Definition: meta.hpp:1605
    +
    entt::meta_any::reset
    void reset()
    Destroys contained object.
    Definition: meta.hpp:494
    +
    entt::meta_any::try_cast
    Type * try_cast()
    Tries to cast an instance to a given type.
    Definition: meta.hpp:402
    +
    entt::meta_any::operator=
    meta_any & operator=(const meta_any &other)
    Copy assignment operator.
    Definition: meta.hpp:277
    +
    entt::meta_any::try_cast
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:388
    +
    entt::meta_any::invoke
    meta_any invoke(const id_type id, Args &&... args) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:1611
    +
    entt::meta_any::set
    bool set(const id_type id, Type &&value)
    Sets the value of a given variable.
    Definition: meta.hpp:1623
    +
    entt::meta_any::as_ref
    meta_any as_ref() const
    Aliasing constructor.
    Definition: meta.hpp:571
    +
    entt::meta_any::meta_any
    meta_any(std::in_place_type_t< Type >, Args &&... args)
    Constructs a wrapper by directly initializing the new object.
    Definition: meta.hpp:220
    +
    entt::meta_any::as_associative_container
    meta_associative_container as_associative_container() const
    Returns an associative container proxy.
    Definition: meta.hpp:528
    +
    entt::meta_any::as_ref
    meta_any as_ref()
    Aliasing constructor.
    Definition: meta.hpp:566
    +
    entt::meta_any::operator=
    std::enable_if_t<!std::is_same_v< std::decay_t< Type >, meta_any >, meta_any & > operator=(Type &&value)
    Value assignment operator.
    Definition: meta.hpp:317
    +
    entt::meta_any::allow_cast
    bool allow_cast()
    Converts an object in such a way that a given cast becomes viable.
    Definition: meta.hpp:466
    +
    entt::meta_any::meta_any
    meta_any(meta_any &&other)
    Move constructor.
    Definition: meta.hpp:261
    +
    entt::meta_any::as_associative_container
    meta_associative_container as_associative_container()
    Returns an associative container proxy.
    Definition: meta.hpp:521
    +
    entt::meta_associative_container::meta_iterator
    Opaque iterator for associative containers.
    Definition: meta.hpp:1942
    +
    entt::meta_associative_container::meta_iterator::operator!=
    bool operator!=(const meta_iterator &other) const
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:2017
    +
    entt::meta_associative_container::meta_iterator::meta_iterator
    meta_iterator()=default
    Default constructor.
    +
    entt::meta_associative_container::meta_iterator::reference
    value_type reference
    Reference type, it is not an actual reference.
    Definition: meta.hpp:1973
    +
    entt::meta_associative_container::meta_iterator::operator==
    bool operator==(const meta_iterator &other) const
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:2008
    +
    entt::meta_associative_container::meta_iterator::pointer
    void pointer
    Pointer type, void on purpose.
    Definition: meta.hpp:1971
    +
    entt::meta_associative_container::meta_iterator::iterator_category
    std::input_iterator_tag iterator_category
    Iterator category.
    Definition: meta.hpp:1975
    +
    entt::meta_associative_container::meta_iterator::difference_type
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition: meta.hpp:1967
    +
    entt::meta_associative_container::meta_iterator::operator*
    reference operator*() const
    Indirection operator.
    Definition: meta.hpp:2025
    +
    entt::meta_associative_container::meta_iterator::operator++
    meta_iterator operator++(int)
    Post-increment operator.
    Definition: meta.hpp:1998
    +
    entt::meta_associative_container::meta_iterator::operator++
    meta_iterator & operator++()
    Pre-increment operator.
    Definition: meta.hpp:1993
    +
    entt::meta_associative_container::meta_iterator::value_type
    std::pair< meta_any, meta_any > value_type
    Type of elements returned by the iterator.
    Definition: meta.hpp:1969
    +
    entt::meta_associative_container
    Proxy object for associative containers.
    Definition: meta.hpp:92
    +
    entt::meta_associative_container::key_only
    bool key_only() const
    Returns true if a container is also key-only, false otherwise.
    Definition: meta.hpp:2129
    +
    entt::meta_associative_container::meta_associative_container
    meta_associative_container()=default
    Default constructor.
    +
    entt::meta_associative_container::value_type
    meta_type value_type() const
    Returns the meta value type of a container.
    Definition: meta.hpp:2153
    +
    entt::meta_associative_container::find
    iterator find(meta_any)
    Returns an iterator to the element with a given key, if any.
    Definition: meta.hpp:2208
    +
    entt::meta_associative_container::insert
    bool insert(meta_any, meta_any)
    Inserts an element (a key/value pair) into a container.
    Definition: meta.hpp:2188
    +
    entt::meta_associative_container::end
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition: meta.hpp:2177
    +
    entt::meta_associative_container::begin
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition: meta.hpp:2171
    +
    entt::meta_associative_container::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: meta.hpp:100
    +
    entt::meta_associative_container::iterator
    meta_iterator iterator
    Meta iterator type.
    Definition: meta.hpp:102
    +
    entt::meta_associative_container::erase
    bool erase(meta_any)
    Removes the specified element from a container.
    Definition: meta.hpp:2198
    +
    entt::meta_associative_container::key_type
    meta_type key_type() const
    Returns the meta key type of a container.
    Definition: meta.hpp:2138
    +
    entt::meta_associative_container::mapped_type
    meta_type mapped_type() const
    Returns the meta mapped type of a container.
    Definition: meta.hpp:2147
    +
    entt::meta_associative_container::size
    size_type size() const
    Returns the size of a container.
    Definition: meta.hpp:2159
    +
    entt::meta_associative_container::clear
    bool clear()
    Clears the content of a container.
    Definition: meta.hpp:2165
    entt::meta_range
    Iterable range to use to iterate all types of meta objects.
    Definition: range.hpp:18
    -
    entt::meta_handle::operator=
    meta_handle & operator=(meta_handle &&)=default
    Default move assignment operator.
    -
    entt::meta_any::as_sequence_container
    meta_sequence_container as_sequence_container() noexcept
    Returns a sequence container proxy.
    Definition: meta.hpp:469
    -
    entt::meta_any::invoke
    meta_any invoke(const id_type id, Args &&... args) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:1580
    -
    entt::meta_associative_container::meta_iterator::pointer
    void pointer
    Pointer type, void on purpose.
    Definition: meta.hpp:1938
    -
    entt::meta_associative_container::meta_associative_container
    meta_associative_container() noexcept=default
    Default constructor.
    -
    entt::meta_func
    Opaque wrapper for member functions.
    Definition: meta.hpp:884
    -
    entt::meta_type::func
    meta_range< meta_func > func() const noexcept
    Returns a range to use to visit top-level functions.
    Definition: meta.hpp:1331
    -
    entt::meta_type::is_member_function_pointer
    bool is_member_function_pointer() const noexcept
    Checks whether a type refers to a pointer to member function or not.
    Definition: meta.hpp:1169
    -
    entt::meta_data::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:866
    -
    entt::meta_func::is_const
    bool is_const() const noexcept
    Indicates whether a member function is constant or not.
    Definition: meta.hpp:915
    -
    entt::meta_type::node_type
    internal::meta_type_node node_type
    Node type.
    Definition: meta.hpp:1037
    -
    entt::meta_any::meta_any
    meta_any() noexcept
    Default constructor.
    Definition: meta.hpp:220
    -
    entt::meta_type::is_associative_container
    bool is_associative_container() const noexcept
    Checks whether a type refers to an associative container or not.
    Definition: meta.hpp:1194
    -
    entt::meta_any::set
    bool set(const id_type id, Type &&value)
    Sets the value of a given variable.
    Definition: meta.hpp:1592
    -
    entt::meta_any::~meta_any
    ~meta_any()
    Frees the internal storage, whatever it means.
    Definition: meta.hpp:276
    -
    entt::meta_func::is_static
    bool is_static() const noexcept
    Indicates whether a member function is static or not.
    Definition: meta.hpp:923
    -
    entt::meta_any::emplace
    void emplace(Args &&... args)
    Replaces the contained object by creating a new instance directly.
    Definition: meta.hpp:456
    -
    entt::meta_ctor::meta_ctor
    meta_ctor(const node_type *curr=nullptr) noexcept
    Constructs an instance from a given node.
    Definition: meta.hpp:703
    -
    entt::meta_associative_container::insert
    bool insert(meta_any, meta_any)
    Inserts an element (a key/value pair) into a container.
    Definition: meta.hpp:2156
    -
    entt::meta_any::try_cast
    const Type * try_cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:358
    -
    entt::meta_handle::operator->
    const meta_any * operator->() const
    Access operator for accessing the contained opaque object.
    Definition: meta.hpp:644
    -
    entt::meta_type::is_sequence_container
    bool is_sequence_container() const noexcept
    Checks whether a type refers to a sequence container or not.
    Definition: meta.hpp:1186
    -
    entt::meta_type::ctor
    meta_range< meta_ctor > ctor() const noexcept
    Returns a range to use to visit top-level constructors.
    Definition: meta.hpp:1293
    -
    entt::meta_associative_container::erase
    bool erase(meta_any)
    Removes the specified element from a container.
    Definition: meta.hpp:2166
    -
    entt::meta_type::is_integral
    bool is_integral() const noexcept
    Checks whether a type refers to an integral type or not.
    Definition: meta.hpp:1092
    -
    entt::meta_ctor::invoke
    meta_any invoke(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:738
    -
    entt::meta_type::is_pointer
    bool is_pointer() const noexcept
    Checks whether a type refers to a pointer or not.
    Definition: meta.hpp:1141
    -
    entt::meta_type::reset
    void reset() noexcept
    Resets a type and all its parts.
    Definition: meta.hpp:1524
    -
    entt::meta_type::construct
    meta_any construct(Args &&... args) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:1375
    -
    entt::meta_prop::meta_prop
    meta_prop(const node_type *curr=nullptr) noexcept
    Constructs an instance from a given node.
    Definition: meta.hpp:662
    -
    entt::meta_type::data
    meta_range< meta_data > data() const noexcept
    Returns a range to use to visit top-level data.
    Definition: meta.hpp:1311
    -
    entt::meta_type::is_pointer_like
    bool is_pointer_like() const noexcept
    Checks whether a type is a pointer-like type or not.
    Definition: meta.hpp:1178
    -
    entt::meta_sequence_container::begin
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition: meta.hpp:1853
    -
    entt::meta_sequence_container::meta_iterator::iterator_category
    std::input_iterator_tag iterator_category
    Iterator category.
    Definition: meta.hpp:1673
    -
    entt::meta_any::type
    meta_type type() const noexcept
    Returns the type of the underlying object.
    Definition: meta.hpp:1574
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::meta_sequence_container::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: meta.hpp:41
    -
    entt::meta_type::invoke
    meta_any invoke(const id_type id, meta_handle instance, Args &&... args) const
    Invokes a function given an identifier, if possible.
    Definition: meta.hpp:1436
    -
    entt::meta_type::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:1493
    -
    entt::meta_sequence_container::size
    size_type size() const noexcept
    Returns the size of a container.
    Definition: meta.hpp:1825
    -
    entt::meta_any::meta_any
    meta_any(Type &&value)
    Constructs a meta any from a given value.
    Definition: meta.hpp:255
    -
    entt::meta_associative_container::meta_iterator::operator!=
    bool operator!=(const meta_iterator &other) const noexcept
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1984
    -
    entt::meta_type::meta_type
    meta_type(base_node_type *curr) noexcept
    Constructs an instance from a given base node.
    Definition: meta.hpp:1052
    -
    entt::meta_ctor::invoke
    meta_any invoke([[maybe_unused]] Args &&... args) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:752
    -
    entt::meta_func::meta_func
    meta_func(const node_type *curr=nullptr) noexcept
    Constructs an instance from a given node.
    Definition: meta.hpp:891
    -
    entt::y_combinator
    Basic implementation of a y-combinator.
    Definition: utility.hpp:71
    -
    entt::meta_ctor::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:700
    -
    entt::meta_type::template_type
    meta_type template_type() const noexcept
    Returns a tag for the class template of the underlying type.
    Definition: meta.hpp:1223
    -
    entt::meta_associative_container::key_type
    meta_type key_type() const noexcept
    Returns the meta key type of a container.
    Definition: meta.hpp:2106
    -
    entt::meta_handle::operator=
    meta_handle & operator=(const meta_handle &)=delete
    Default copy assignment operator, deleted on purpose.
    -
    entt::meta_sequence_container::meta_iterator::operator++
    meta_iterator operator++(int) noexcept
    Post-increment operator.
    Definition: meta.hpp:1695
    -
    entt::meta_sequence_container::value_type
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition: meta.hpp:1816
    -
    entt::meta_data::set
    bool set(meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition: meta.hpp:839
    -
    entt::meta_associative_container_traits
    Traits class template to be specialized to enable support for meta associative containers.
    Definition: type_traits.hpp:32
    -
    entt::meta_func::parent
    meta_type parent() const noexcept
    Returns the type to which an object belongs.
    Definition: meta.hpp:1627
    -
    entt::meta_sequence_container::meta_sequence_container
    meta_sequence_container() noexcept=default
    Default constructor.
    -
    entt::meta_type
    Opaque wrapper for types.
    Definition: meta.hpp:1003
    -
    entt::meta_any::as_associative_container
    meta_associative_container as_associative_container() noexcept
    Returns an associative container proxy.
    Definition: meta.hpp:486
    -
    entt::storage
    basic_storage< entity, Args... > storage
    Alias declaration for the most common use case.
    Definition: fwd.hpp:72
    -
    entt::meta_handle::meta_handle
    meta_handle(Type &value) noexcept
    Creates a handle that points to an unmanaged object.
    Definition: meta.hpp:617
    -
    entt::meta_associative_container::meta_iterator::reference
    value_type reference
    Reference type, it is not an actual reference.
    Definition: meta.hpp:1940
    -
    entt::meta_type::is_floating_point
    bool is_floating_point() const noexcept
    Checks whether a type refers to a floating-point type or not.
    Definition: meta.hpp:1101
    -
    entt::meta_type::base
    meta_range< meta_type, internal::meta_base_node > base() const noexcept
    Returns a range to use to visit top-level base meta types.
    Definition: meta.hpp:1276
    -
    entt::meta_func::arity
    size_type arity() const noexcept
    Returns the number of arguments accepted by a member function.
    Definition: meta.hpp:907
    -
    entt::meta_any::as_ref
    meta_any as_ref() noexcept
    Aliasing constructor.
    Definition: meta.hpp:550
    -
    entt::meta_type::id
    id_type id() const noexcept
    Returns the identifier assigned to a type.
    Definition: meta.hpp:1068
    -
    entt::meta_associative_container::clear
    bool clear()
    Clears the content of a container.
    Definition: meta.hpp:2133
    -
    entt::meta_data::node_type
    internal::meta_data_node node_type
    Node type.
    Definition: meta.hpp:790
    -
    entt::meta_type::is_union
    bool is_union() const noexcept
    Checks whether a type refers to an union or not.
    Definition: meta.hpp:1125
    -
    entt::meta_associative_container::size
    size_type size() const noexcept
    Returns the size of a container.
    Definition: meta.hpp:2127
    -
    entt::meta_any::allow_cast
    meta_any allow_cast() const
    Converts an object in such a way that a given cast becomes viable.
    Definition: meta.hpp:418
    -
    entt::meta_any::allow_cast
    bool allow_cast()
    Converts an object in such a way that a given cast becomes viable.
    Definition: meta.hpp:436
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::meta_data::get
    meta_any get(meta_handle instance) const
    Gets the value of a given variable.
    Definition: meta.hpp:852
    -
    entt::meta_sequence_container::insert
    std::pair< iterator, bool > insert(iterator, meta_any)
    Inserts an element at a specified location of a container.
    Definition: meta.hpp:1874
    -
    entt::meta_sequence_container::meta_iterator::value_type
    meta_any value_type
    Type of elements returned by the iterator.
    Definition: meta.hpp:1667
    -
    entt::meta_sequence_container::meta_iterator::operator++
    meta_iterator & operator++() noexcept
    Pre-increment operator.
    Definition: meta.hpp:1690
    -
    entt::meta_associative_container::iterator
    meta_iterator iterator
    Meta iterator type.
    Definition: meta.hpp:103
    -
    entt::meta_associative_container::mapped_type
    meta_type mapped_type() const noexcept
    Returns the meta mapped type of a container.
    Definition: meta.hpp:2115
    -
    entt::meta_associative_container::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: meta.hpp:101
    -
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:588
    -
    entt::meta_type::size_of
    size_type size_of() const noexcept
    Returns the size of the underlying type if known.
    Definition: meta.hpp:1076
    -
    entt::meta_data::prop
    meta_range< meta_prop > prop() const noexcept
    Returns a range to use to visit all properties.
    Definition: meta.hpp:857
    -
    entt::meta_type::remove_extent
    meta_type remove_extent() const noexcept
    Provides the type for which the array is defined.
    Definition: meta.hpp:1268
    -
    entt::meta_associative_container::meta_iterator::operator++
    meta_iterator operator++(int) noexcept
    Post-increment operator.
    Definition: meta.hpp:1965
    -
    entt::meta_any::data
    void * data() noexcept
    Returns an opaque pointer to the contained instance.
    Definition: meta.hpp:307
    +
    entt::meta_sequence_container::meta_iterator
    Opaque iterator for sequence containers.
    Definition: meta.hpp:1674
    +
    entt::meta_sequence_container::meta_iterator::operator!=
    bool operator!=(const meta_iterator &other) const
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1745
    +
    entt::meta_sequence_container::meta_iterator::operator++
    meta_iterator operator++(int)
    Post-increment operator.
    Definition: meta.hpp:1726
    +
    entt::meta_sequence_container::meta_iterator::value_type
    meta_any value_type
    Type of elements returned by the iterator.
    Definition: meta.hpp:1698
    +
    entt::meta_sequence_container::meta_iterator::pointer
    void pointer
    Pointer type, void on purpose.
    Definition: meta.hpp:1700
    +
    entt::meta_sequence_container::meta_iterator::meta_iterator
    meta_iterator()=default
    Default constructor.
    +
    entt::meta_sequence_container::meta_iterator::operator++
    meta_iterator & operator++()
    Pre-increment operator.
    Definition: meta.hpp:1721
    +
    entt::meta_sequence_container::meta_iterator::iterator_category
    std::input_iterator_tag iterator_category
    Iterator category.
    Definition: meta.hpp:1704
    +
    entt::meta_sequence_container::meta_iterator::operator*
    reference operator*() const
    Indirection operator.
    Definition: meta.hpp:1753
    +
    entt::meta_sequence_container::meta_iterator::operator==
    bool operator==(const meta_iterator &other) const
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1736
    +
    entt::meta_sequence_container::meta_iterator::difference_type
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition: meta.hpp:1696
    +
    entt::meta_sequence_container
    Proxy object for sequence containers.
    Definition: meta.hpp:32
    +
    entt::meta_sequence_container::operator[]
    meta_any operator[](size_type)
    Returns a reference to the element at a given location of a container (no bounds checking is performe...
    Definition: meta.hpp:1927
    +
    entt::meta_sequence_container::meta_sequence_container
    meta_sequence_container()=default
    Default constructor.
    +
    entt::meta_sequence_container::end
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition: meta.hpp:1893
    +
    entt::meta_sequence_container::insert
    std::pair< iterator, bool > insert(iterator, meta_any)
    Inserts an element at a specified location of a container.
    Definition: meta.hpp:1905
    +
    entt::meta_sequence_container::value_type
    meta_type value_type() const
    Returns the meta value type of a container.
    Definition: meta.hpp:1847
    +
    entt::meta_sequence_container::iterator
    meta_iterator iterator
    Meta iterator type.
    Definition: meta.hpp:42
    +
    entt::meta_sequence_container::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: meta.hpp:40
    +
    entt::meta_sequence_container::erase
    std::pair< iterator, bool > erase(iterator)
    Removes a given element from a container.
    Definition: meta.hpp:1916
    +
    entt::meta_sequence_container::resize
    bool resize(size_type)
    Resizes a container to contain a given number of elements.
    Definition: meta.hpp:1866
    +
    entt::meta_sequence_container::size
    size_type size() const
    Returns the size of a container.
    Definition: meta.hpp:1856
    +
    entt::meta_sequence_container::begin
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition: meta.hpp:1884
    +
    entt::meta_sequence_container::clear
    bool clear()
    Clears the content of a container.
    Definition: meta.hpp:1875
    +
    entt::meta_type
    Opaque wrapper for types.
    Definition: meta.hpp:1040
    +
    entt::meta_type::is_member_object_pointer
    bool is_member_object_pointer() const
    Checks whether a type refers to a pointer to data member or not.
    Definition: meta.hpp:1204
    +
    entt::meta_type::is_associative_container
    bool is_associative_container() const
    Checks whether a type refers to an associative container or not.
    Definition: meta.hpp:1239
    +
    entt::meta_type::func
    meta_range< meta_func > func() const
    Returns a range to use to visit top-level functions.
    Definition: meta.hpp:1376
    +
    entt::meta_type::node_type
    internal::meta_type_node node_type
    Node type.
    Definition: meta.hpp:1082
    +
    entt::meta_type::base
    meta_range< meta_type, internal::meta_base_node > base() const
    Returns a range to use to visit top-level base meta types.
    Definition: meta.hpp:1321
    +
    entt::meta_type::remove_pointer
    meta_type remove_pointer() const
    Provides the type for which the pointer is defined.
    Definition: meta.hpp:1304
    +
    entt::meta_type::reset
    void reset()
    Resets a type and all its parts.
    Definition: meta.hpp:1569
    +
    entt::meta_type::operator==
    bool operator==(const meta_type &other) const
    Checks if two objects refer to the same type.
    Definition: meta.hpp:1555
    +
    entt::meta_type::rank
    size_type rank() const
    Provides the number of dimensions of an array type.
    Definition: meta.hpp:1285
    +
    entt::meta_type::base
    meta_type base(const id_type id) const
    Returns the base meta type associated with a given identifier.
    Definition: meta.hpp:1330
    +
    entt::meta_type::func
    meta_func func(const id_type id) const
    Returns the function associated with a given identifier.
    Definition: meta.hpp:1390
    +
    entt::meta_type::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:1538
    +
    entt::meta_type::template_arg
    meta_type template_arg(size_type index) const
    Returns the type of the i-th template argument of a type.
    Definition: meta.hpp:1277
    +
    entt::meta_type::extent
    size_type extent(size_type dim={}) const
    The number of elements along the given dimension of an array type.
    Definition: meta.hpp:1295
    +
    entt::meta_type::meta_type
    meta_type(base_node_type *curr)
    Constructs an instance from a given base node.
    Definition: meta.hpp:1097
    +
    entt::meta_type::size_of
    size_type size_of() const
    Returns the size of the underlying type if known.
    Definition: meta.hpp:1121
    +
    entt::meta_type::data
    meta_data data(const id_type id) const
    Returns the data associated with a given identifier.
    Definition: meta.hpp:1368
    +
    entt::meta_type::is_union
    bool is_union() const
    Checks whether a type refers to an union or not.
    Definition: meta.hpp:1170
    +
    entt::meta_type::is_integral
    bool is_integral() const
    Checks whether a type refers to an integral type or not.
    Definition: meta.hpp:1137
    +
    entt::meta_type::set
    bool set(const id_type id, meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition: meta.hpp:1502
    +
    entt::meta_type::meta_type
    meta_type(node_type *curr=nullptr)
    Constructs an instance from a given node.
    Definition: meta.hpp:1089
    +
    entt::meta_type::is_floating_point
    bool is_floating_point() const
    Checks whether a type refers to a floating-point type or not.
    Definition: meta.hpp:1146
    +
    entt::meta_type::is_pointer
    bool is_pointer() const
    Checks whether a type refers to a pointer or not.
    Definition: meta.hpp:1186
    +
    entt::meta_type::is_class
    bool is_class() const
    Checks whether a type refers to a class or not.
    Definition: meta.hpp:1178
    +
    entt::meta_type::info
    type_info info() const
    Returns the type info object of the underlying type.
    Definition: meta.hpp:1105
    +
    entt::meta_type::is_void
    bool is_void() const
    Checks whether a type refers to void or not.
    Definition: meta.hpp:1129
    +
    entt::meta_type::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:1086
    +
    entt::meta_type::is_pointer_like
    bool is_pointer_like() const
    Checks whether a type is a pointer-like type or not.
    Definition: meta.hpp:1223
    +
    entt::meta_type::is_function_pointer
    bool is_function_pointer() const
    Checks whether a type refers to a function pointer or not.
    Definition: meta.hpp:1195
    +
    entt::meta_type::id
    id_type id() const
    Returns the identifier assigned to a type.
    Definition: meta.hpp:1113
    +
    entt::meta_type::is_array
    bool is_array() const
    Checks whether a type refers to an array type or not.
    Definition: meta.hpp:1154
    +
    entt::meta_type::is_member_function_pointer
    bool is_member_function_pointer() const
    Checks whether a type refers to a pointer to member function or not.
    Definition: meta.hpp:1214
    +
    entt::meta_type::ctor
    meta_range< meta_ctor > ctor() const
    Returns a range to use to visit top-level constructors.
    Definition: meta.hpp:1338
    +
    entt::meta_type::is_sequence_container
    bool is_sequence_container() const
    Checks whether a type refers to a sequence container or not.
    Definition: meta.hpp:1231
    +
    entt::meta_type::get
    meta_any get(const id_type id, meta_handle instance) const
    Gets the value of a given variable.
    Definition: meta.hpp:1517
    +
    entt::meta_type::invoke
    meta_any invoke(const id_type id, meta_handle instance, Args &&... args) const
    Invokes a function given an identifier, if possible.
    Definition: meta.hpp:1481
    +
    entt::meta_type::construct
    meta_any construct(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:1404
    +
    entt::meta_type::template_arity
    size_type template_arity() const
    Returns the number of template arguments, if any.
    Definition: meta.hpp:1257
    +
    entt::meta_type::is_enum
    bool is_enum() const
    Checks whether a type refers to an enum or not.
    Definition: meta.hpp:1162
    +
    entt::meta_type::ctor
    meta_ctor ctor() const
    Returns a constructor for a given list of types of arguments.
    Definition: meta.hpp:1348
    +
    entt::meta_type::invoke
    meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes a function given an identifier, if possible.
    Definition: meta.hpp:1440
    +
    entt::meta_type::construct
    meta_any construct(Args &&... args) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:1420
    +
    entt::meta_type::is_template_specialization
    bool is_template_specialization() const
    Checks whether a type refers to a recognized class template specialization or not.
    Definition: meta.hpp:1249
    +
    entt::meta_type::remove_extent
    meta_type remove_extent() const
    Provides the type for which the array is defined.
    Definition: meta.hpp:1313
    +
    entt::meta_type::base_node_type
    internal::meta_base_node base_node_type
    Node type.
    Definition: meta.hpp:1084
    +
    entt::meta_type::template_type
    meta_type template_type() const
    Returns a tag for the class template of the underlying type.
    Definition: meta.hpp:1268
    +
    entt::meta_type::data
    meta_range< meta_data > data() const
    Returns a range to use to visit top-level data.
    Definition: meta.hpp:1356
    +
    entt::meta_type::prop
    meta_range< meta_prop > prop() const
    Returns a range to use to visit top-level properties.
    Definition: meta.hpp:1526
    entt::type_info
    Implementation specific information about a type.
    Definition: type_info.hpp:150
    -
    entt::meta_type::base_node_type
    internal::meta_base_node base_node_type
    Node type.
    Definition: meta.hpp:1039
    -
    entt::meta_sequence_container::meta_iterator::pointer
    void pointer
    Pointer type, void on purpose.
    Definition: meta.hpp:1669
    -
    entt::meta_type::is_enum
    bool is_enum() const noexcept
    Checks whether a type refers to an enum or not.
    Definition: meta.hpp:1117
    -
    entt::meta_sequence_container_traits
    Traits class template to be specialized to enable support for meta sequence containers.
    Definition: type_traits.hpp:24
    -
    entt::meta_type::get
    meta_any get(const id_type id, meta_handle instance) const
    Gets the value of a given variable.
    Definition: meta.hpp:1472
    -
    entt::meta_type::data
    meta_data data(const id_type id) const
    Returns the data associated with a given identifier.
    Definition: meta.hpp:1323
    -
    entt::meta_prop::value
    meta_any value() const
    Returns the stored value by copy.
    Definition: meta.hpp:678
    -
    entt::meta_prop::node_type
    internal::meta_prop_node node_type
    Node type.
    Definition: meta.hpp:656
    -
    entt::meta_data::id
    id_type id() const noexcept
    Returns the identifier assigned to a type.
    Definition: meta.hpp:798
    -
    entt::meta_associative_container::meta_iterator::operator==
    bool operator==(const meta_iterator &other) const noexcept
    Checks if two iterators refer to the same element.
    Definition: meta.hpp:1975
    -
    entt::meta_type::info
    type_info info() const noexcept
    Returns the type info object of the underlying type.
    Definition: meta.hpp:1060
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::resolve
    meta_type resolve()
    Returns the meta type associated with a given type.
    Definition: resolve.hpp:22
    +
    entt::integral_constant
    std::integral_constant< decltype(Value), Value > integral_constant
    Wraps a static constant.
    Definition: type_traits.hpp:112
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    entt::any
    basic_any<> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    +
    entt::forward_as_meta
    meta_any forward_as_meta(Type &&value)
    Forwards its argument and avoids copies for lvalue references.
    Definition: meta.hpp:613
    +
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:653
    +
    entt::is_complete_v
    constexpr bool is_complete_v
    Helper variable template.
    Definition: type_traits.hpp:567
    +
    entt::get
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    +
    entt::storage
    basic_storage< entity, Args... > storage
    Alias declaration for the most common use case.
    Definition: fwd.hpp:73
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::make_meta
    meta_any make_meta(Args &&... args)
    Constructs a wrapper from a given type, passing it all arguments.
    Definition: meta.hpp:601
    +
    entt::adl_meta_pointer_like
    Fake ADL based lookup function for meta pointer-like types.
    Definition: adl_pointer.hpp:25
    +
    entt::basic_handle
    Non-owning handle to an entity.
    Definition: handle.hpp:26
    +
    entt::basic_storage
    Storage implementation dispatcher.
    Definition: storage.hpp:1006
    +
    entt::meta_associative_container_traits
    Traits class template to be specialized to enable support for meta associative containers.
    Definition: type_traits.hpp:32
    +
    entt::meta_ctor
    Opaque wrapper for constructors.
    Definition: meta.hpp:733
    +
    entt::meta_ctor::arity
    size_type arity() const
    Returns the number of arguments accepted by a constructor.
    Definition: meta.hpp:754
    +
    entt::meta_ctor::invoke
    meta_any invoke(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:775
    +
    entt::meta_ctor::parent
    meta_type parent() const
    Returns the type to which an object belongs.
    Definition: meta.hpp:1638
    +
    entt::meta_ctor::invoke
    meta_any invoke([[maybe_unused]] Args &&... args) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:789
    +
    entt::meta_ctor::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:737
    +
    entt::meta_ctor::node_type
    internal::meta_ctor_node node_type
    Node type.
    Definition: meta.hpp:735
    +
    entt::meta_ctor::prop
    meta_range< meta_prop > prop() const
    Returns a range to use to visit all properties.
    Definition: meta.hpp:798
    +
    entt::meta_ctor::meta_ctor
    meta_ctor(const node_type *curr=nullptr)
    Constructs an instance from a given node.
    Definition: meta.hpp:740
    +
    entt::meta_ctor::arg
    meta_type arg(size_type index) const
    Returns the type of the i-th argument of a constructor.
    Definition: meta.hpp:1643
    +
    entt::meta_ctor::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:807
    +
    entt::meta_data
    Opaque wrapper for data members.
    Definition: meta.hpp:825
    +
    entt::meta_data::is_static
    bool is_static() const
    Indicates whether a data member is static or not.
    Definition: meta.hpp:854
    +
    entt::meta_data::node_type
    internal::meta_data_node node_type
    Node type.
    Definition: meta.hpp:827
    +
    entt::meta_data::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:903
    +
    entt::meta_data::meta_data
    meta_data(const node_type *curr=nullptr)
    Constructs an instance from a given node.
    Definition: meta.hpp:830
    +
    entt::meta_data::id
    id_type id() const
    Returns the identifier assigned to a type.
    Definition: meta.hpp:835
    +
    entt::meta_data::get
    meta_any get(meta_handle instance) const
    Gets the value of a given variable.
    Definition: meta.hpp:889
    +
    entt::meta_data::is_const
    bool is_const() const
    Indicates whether a data member is constant or not.
    Definition: meta.hpp:846
    +
    entt::meta_data::set
    bool set(meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition: meta.hpp:876
    +
    entt::meta_data::prop
    meta_range< meta_prop > prop() const
    Returns a range to use to visit all properties.
    Definition: meta.hpp:894
    +
    entt::meta_data::type
    meta_type type() const
    Returns the type of the underlying object.
    Definition: meta.hpp:1653
    +
    entt::meta_data::parent
    meta_type parent() const
    Returns the type to which an object belongs.
    Definition: meta.hpp:1648
    +
    entt::meta_func
    Opaque wrapper for member functions.
    Definition: meta.hpp:921
    +
    entt::meta_func::arg
    meta_type arg(size_type index) const
    Returns the type of the i-th argument of a member function.
    Definition: meta.hpp:1668
    +
    entt::meta_func::prop
    meta_range< meta_prop > prop() const
    Returns a range to use to visit all properties.
    Definition: meta.hpp:1013
    +
    entt::meta_func::id
    id_type id() const
    Returns the identifier assigned to a type.
    Definition: meta.hpp:933
    +
    entt::meta_func::ret
    meta_type ret() const
    Returns the return type of a member function.
    Definition: meta.hpp:1663
    +
    entt::meta_func::prop
    meta_prop prop(meta_any key) const
    Returns the property associated with a given key.
    Definition: meta.hpp:1022
    +
    entt::meta_func::is_const
    bool is_const() const
    Indicates whether a member function is constant or not.
    Definition: meta.hpp:952
    +
    entt::meta_func::invoke
    meta_any invoke(meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:992
    +
    entt::meta_func::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:925
    +
    entt::meta_func::is_static
    bool is_static() const
    Indicates whether a member function is static or not.
    Definition: meta.hpp:960
    +
    entt::meta_func::node_type
    internal::meta_func_node node_type
    Node type.
    Definition: meta.hpp:923
    +
    entt::meta_func::arity
    size_type arity() const
    Returns the number of arguments accepted by a member function.
    Definition: meta.hpp:944
    +
    entt::meta_func::invoke
    meta_any invoke(meta_handle instance, Args &&... args) const
    Invokes the underlying function, if possible.
    Definition: meta.hpp:1007
    +
    entt::meta_func::parent
    meta_type parent() const
    Returns the type to which an object belongs.
    Definition: meta.hpp:1658
    +
    entt::meta_func::meta_func
    meta_func(const node_type *curr=nullptr)
    Constructs an instance from a given node.
    Definition: meta.hpp:928
    +
    entt::meta_handle
    Opaque pointers to instances of any type.
    Definition: meta.hpp:625
    +
    entt::meta_handle::operator=
    meta_handle & operator=(const meta_handle &)=delete
    Default copy assignment operator, deleted on purpose.
    entt::meta_handle::meta_handle
    meta_handle()=default
    Default constructor.
    -
    entt::any
    basic_any< sizeof(double[2])> any
    Alias declaration for the most common use case.
    Definition: fwd.hpp:21
    -
    entt::meta_type::is_class
    bool is_class() const noexcept
    Checks whether a type refers to a class or not.
    Definition: meta.hpp:1133
    -
    entt::meta_type::construct
    meta_any construct(meta_any *const args, const size_type sz) const
    Creates an instance of the underlying type, if possible.
    Definition: meta.hpp:1359
    -
    entt::meta_associative_container::begin
    iterator begin()
    Returns an iterator to the first element of a container.
    Definition: meta.hpp:2139
    -
    entt::meta_any::try_cast
    Type * try_cast()
    Tries to cast an instance to a given type.
    Definition: meta.hpp:372
    -
    entt::meta_any::reset
    void reset()
    Destroys contained object.
    Definition: meta.hpp:461
    -
    entt::meta_sequence_container::meta_iterator::meta_iterator
    meta_iterator() noexcept=default
    Default constructor.
    -
    entt::meta_any::cast
    Type cast() const
    Tries to cast an instance to a given type.
    Definition: meta.hpp:396
    -
    entt::meta_type::template_arity
    size_type template_arity() const noexcept
    Returns the number of template arguments, if any.
    Definition: meta.hpp:1212
    -
    entt::meta_ctor::prop
    meta_range< meta_prop > prop() const noexcept
    Returns a range to use to visit all properties.
    Definition: meta.hpp:761
    -
    entt::meta_ctor::arg
    meta_type arg(size_type index) const noexcept
    Returns the type of the i-th argument of a constructor.
    Definition: meta.hpp:1612
    -
    entt::meta_type::invoke
    meta_any invoke(const id_type id, meta_handle instance, meta_any *const args, const size_type sz) const
    Invokes a function given an identifier, if possible.
    Definition: meta.hpp:1395
    -
    entt::meta_associative_container::meta_iterator
    Opaque iterator for associative containers.
    Definition: meta.hpp:1911
    -
    entt::meta_handle::operator->
    meta_any * operator->()
    Access operator for accessing the contained opaque object.
    Definition: meta.hpp:639
    -
    entt::meta_type::set
    bool set(const id_type id, meta_handle instance, Type &&value) const
    Sets the value of a given variable.
    Definition: meta.hpp:1457
    -
    entt::meta_type::is_void
    bool is_void() const noexcept
    Checks whether a type refers to void or not.
    Definition: meta.hpp:1084
    -
    entt::meta_any::swap
    friend void swap(meta_any &lhs, meta_any &rhs)
    Swaps two meta any objects.
    Definition: meta.hpp:539
    -
    entt::meta_sequence_container::meta_iterator::difference_type
    std::ptrdiff_t difference_type
    Signed integer type.
    Definition: meta.hpp:1665
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    -
    entt::meta_ctor::arity
    size_type arity() const noexcept
    Returns the number of arguments accepted by a constructor.
    Definition: meta.hpp:717
    -
    entt::meta_any::get
    meta_any get(const id_type id) const
    Gets the value of a given variable.
    Definition: meta.hpp:1597
    -
    entt::basic_any< sizeof(double[2])>
    -
    entt::meta_func::size_type
    typename node_type::size_type size_type
    Unsigned integer type.
    Definition: meta.hpp:888
    -
    entt::meta_associative_container::value_type
    meta_type value_type() const noexcept
    Returns the meta value type of a container.
    Definition: meta.hpp:2121
    -
    entt::meta_associative_container::key_only
    bool key_only() const noexcept
    Returns true if a container is also key-only, false otherwise.
    Definition: meta.hpp:2097
    -
    entt::is_complete_v
    constexpr auto is_complete_v
    Helper variable template.
    Definition: type_traits.hpp:562
    -
    entt::meta_type::is_member_object_pointer
    bool is_member_object_pointer() const noexcept
    Checks whether a type refers to a pointer to data member or not.
    Definition: meta.hpp:1159
    -
    entt::meta_sequence_container::end
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition: meta.hpp:1862
    -
    entt::meta_associative_container::end
    iterator end()
    Returns an iterator that is past the last element of a container.
    Definition: meta.hpp:2145
    +
    entt::meta_handle::meta_handle
    meta_handle(meta_handle &&)=default
    Default move constructor.
    +
    entt::meta_handle::operator=
    meta_handle & operator=(meta_handle &&)=default
    Default move assignment operator.
    +
    entt::meta_handle::meta_handle
    meta_handle(const meta_handle &)=delete
    Default copy constructor, deleted on purpose.
    +
    entt::meta_handle::operator->
    meta_any * operator->()
    Access operator for accessing the contained opaque object.
    Definition: meta.hpp:676
    +
    entt::meta_handle::operator->
    const meta_any * operator->() const
    Access operator for accessing the contained opaque object.
    Definition: meta.hpp:681
    +
    entt::meta_handle::meta_handle
    meta_handle(Type &value)
    Creates a handle that points to an unmanaged object.
    Definition: meta.hpp:654
    +
    entt::meta_prop
    Opaque wrapper for properties of any type.
    Definition: meta.hpp:691
    +
    entt::meta_prop::meta_prop
    meta_prop(const node_type *curr=nullptr)
    Constructs an instance from a given node.
    Definition: meta.hpp:699
    +
    entt::meta_prop::value
    meta_any value() const
    Returns the stored value by copy.
    Definition: meta.hpp:715
    +
    entt::meta_prop::node_type
    internal::meta_prop_node node_type
    Node type.
    Definition: meta.hpp:693
    +
    entt::meta_prop::key
    meta_any key() const
    Returns the stored key as a const reference.
    Definition: meta.hpp:707
    +
    entt::meta_sequence_container_traits
    Traits class template to be specialized to enable support for meta sequence containers.
    Definition: type_traits.hpp:24
    + diff --git a/monostate_8hpp_source.html b/monostate_8hpp_source.html index 1d62c4ec4..32d32b608 100644 --- a/monostate_8hpp_source.html +++ b/monostate_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/monostate.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -84,12 +84,12 @@ $(function() {
    23 template<id_type>
    24 struct monostate {
    30  template<typename Type>
    -
    31  void operator=(Type val) const ENTT_NOEXCEPT {
    +
    31  void operator=(Type val) const ENTT_NOEXCEPT {
    32  value<Type> = val;
    33  }
    34 
    40  template<typename Type>
    -
    41  operator Type() const ENTT_NOEXCEPT {
    +
    41  operator Type() const ENTT_NOEXCEPT {
    42  return value<Type>;
    43  }
    44 
    @@ -107,14 +107,14 @@ $(function() {
    60 
    61 
    62 #endif
    - -
    entt::monostate::operator=
    void operator=(Type val) const noexcept
    Assigns a value of a specific type to a given key.
    Definition: monostate.hpp:31
    -
    entt::monostate
    Minimal implementation of the monostate pattern.
    Definition: monostate.hpp:24
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    entt::monostate_v
    monostate< Value > monostate_v
    Helper variable template.
    Definition: monostate.hpp:56
    +
    entt::monostate
    Minimal implementation of the monostate pattern.
    Definition: monostate.hpp:24
    +
    entt::monostate::operator=
    void operator=(Type val) const
    Assigns a value of a specific type to a given key.
    Definition: monostate.hpp:31
    + diff --git a/namespaceentt.html b/namespaceentt.html index 58284c090..59ae79765 100644 --- a/namespaceentt.html +++ b/namespaceentt.html @@ -3,7 +3,7 @@ - + EnTT: entt Namespace Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,110 +78,41 @@ $(function() { - - + + - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -189,288 +120,8 @@ Classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -478,41 +129,38 @@ Classes - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - + + - - + + + + + + + + + + + @@ -526,57 +174,434 @@ Classes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Classes

    struct  adl_meta_pointer_like
     Fake ADL based lookup function for meta pointer-like types. More...
    struct  std_sort
     Function object to wrap std::sort in a class type. More...
     
    struct  as_cref_t
     Empty class type used to request the as cref policy. More...
    struct  insertion_sort
     Function object for performing insertion sort. More...
     
    struct  as_group
     Converts a registry to a group. More...
     
    struct  as_is_t
     Empty class type used to request the as-is policy. More...
     
    struct  as_ref_t
     Empty class type used to request the as ref policy. More...
     
    struct  as_view
     Converts a registry to a view. More...
     
    struct  as_void_t
     Empty class type used to request the as void policy. More...
    struct  radix_sort
     Function object for performing LSD radix sort. More...
     
    class  basic_any
     A SBO friendly, type-safe container for single values of any type. More...
     
    struct  basic_associative_container
     Basic STL-compatible associative container traits. More...
     
    struct  basic_collector
     Collector. More...
     
    struct  basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >
     Collector. More...
     
    struct  basic_collector<>
     Collector. More...
     
    struct  basic_container
     Basic STL-compatible container traits. More...
     
    class  basic_continuous_loader
     Utility class for continuous loading. More...
     
    struct  basic_dynamic_associative_container
     Basic STL-compatible dynamic associative container traits. More...
     
    struct  basic_dynamic_container
     Basic STL-compatible dynamic container traits. More...
     
    class  basic_group
     Group. More...
     
    class  basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
     Non-owning group. More...
     
    class  basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
     Owning group. More...
     
    struct  basic_handle
     Non-owning handle to an entity. More...
    class  family
     Dynamic identifier generator. More...
     
    class  basic_hashed_string
     Zero overhead unique identifier. More...
     
    class  basic_observer
     Observer. More...
    class  identifier
     Types identifiers. More...
     
    class  basic_organizer
     Utility class for creating a static task graph. More...
    struct  monostate
     Minimal implementation of the monostate pattern. More...
     
    class  basic_poly
     Static polymorphism made simple and within everyone's reach. More...
    struct  type_seq
     Type sequential identifier. More...
     
    class  basic_registry
     Fast and reliable entity-component system. More...
    struct  type_hash
     Type hash. More...
     
    class  basic_runtime_view
     Runtime view. More...
    struct  type_name
     Type name. More...
     
    struct  basic_sequence_container
     Basic STL-compatible sequence container traits. More...
     
    class  basic_snapshot
     Utility class to create snapshots from a registry. More...
     
    class  basic_snapshot_loader
     Utility class to restore a snapshot as a whole. More...
     
    class  basic_sparse_set
     Basic sparse set implementation. More...
     
    class  basic_storage
     Basic storage implementation. More...
     
    class  basic_storage< Entity, Type, std::enable_if_t< is_empty_v< Type > > >
     Basic storage implementation. More...
     
    class  basic_view
     View. More...
     
    class  basic_view< Entity, exclude_t< Exclude... >, Component... >
     Multi component view. More...
     
    class  basic_view< Entity, exclude_t<>, Component >
     Single component view specialization. More...
    class  type_info
     Implementation specific information about a type. More...
     
    struct  choice_t
     Utility class to disambiguate overloaded functions. More...
    struct  choice_t< 0 >
     Utility class to disambiguate overloaded functions. More...
     
    struct  connect_arg_t
     Used to wrap a function or a member of a specified type. More...
     
    class  connection
     Connection class. More...
     
    struct  constness_as
     Transcribes the constness of a type to another type. More...
     
    struct  constness_as< To, const From >
     Transcribes the constness of a type to another type. More...
     
    class  delegate
     Basic delegate implementation. More...
     
    class  delegate< Ret(Args...)>
     Utility class to use to send around functions and members. More...
     
    class  dispatcher
     Basic dispatcher implementation. More...
     
    struct  dynamic_associative_key_only_container
     STL-compatible dynamic associative key-only container traits. More...
     
    struct  dynamic_associative_key_value_container
     STL-compatible dynamic key-value associative container traits. More...
     
    struct  dynamic_sequence_container
     STL-compatible dynamic sequence container traits. More...
     
    class  emitter
     General purpose event emitter. More...
     
    struct  entt_traits
     Entity traits. More...
     
    struct  entt_traits< std::uint32_t >
     Entity traits for a 32 bits entity identifier. More...
     
    struct  entt_traits< std::uint64_t >
     Entity traits for a 64 bits entity identifier. More...
     
    struct  entt_traits< Type, std::enable_if_t< std::is_enum_v< Type > > >
     Entity traits for enumeration types. More...
     
    struct  exclude_t
     Alias for exclusion lists. More...
     
    class  family
     Dynamic identifier generator. More...
     
    struct  fixed_sequence_container
     STL-compatible fixed sequence container traits. More...
     
    struct  get_t
     Alias for lists of observed components. More...
     
    class  identifier
     Types identifiers. More...
     
    struct  identity
     Identity function object (waiting for C++20). More...
     
    struct  insertion_sort
     Function object for performing insertion sort. More...
     
    struct  is_applicable
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable< Func, const Tuple< Args... > >
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable< Func, Tuple< Args... > >
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable_r
     Same as std::is_invocable_r, but with tuples for arguments. More...
     
    struct  is_applicable_r< Ret, Func, std::tuple< Args... > >
     Same as std::is_invocable_r, but with tuples for arguments. More...
     
    struct  is_complete
     Provides the member constant value to true if a given type is complete, false otherwise. More...
     
    struct  is_complete< Type, std::void_t< decltype(sizeof(Type))> >
     Provides the member constant value to true if a given type is complete, false otherwise. More...
     
    struct  is_empty
     Provides the member constant value to true if a given type is empty and the empty type optimization is enabled, false otherwise. More...
     
    struct  is_equality_comparable
     Provides the member constant value to true if a given type is equality comparable, false otherwise. More...
     
    struct  is_key_only_meta_associative_container
     Provides the member constant value to true if a meta associative container claims to wrap a key-only type, false otherwise. More...
     
    struct  is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > >
     Provides the member constant value to true if a meta associative container claims to wrap a key-only type, false otherwise. More...
     
    struct  is_meta_pointer_like
     Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise. More...
     
    struct  is_meta_pointer_like< const Type >
     Partial specialization to ensure that const pointer-like types are also accepted. More...
     
    struct  is_meta_pointer_like< std::shared_ptr< Type > >
     Makes std::shared_ptrs of any type pointer-like types for the meta system. More...
     
    struct  is_meta_pointer_like< std::unique_ptr< Type, Args... > >
     Makes std::unique_ptrs of any type pointer-like types for the meta system. More...
     
    struct  is_meta_pointer_like< Type * >
     Makes plain pointers pointer-like types for the meta system. More...
     
    struct  is_std_hashable
     Provides the member constant value to true if a given type is hashable, false otherwise. More...
     
    struct  is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > >
     Provides the member constant value to true if a given type is hashable, false otherwise. More...
     
    struct  matcher
     Grouping matcher. More...
     
    class  member_class
     Extracts the class of a non-static member object or function. More...
     
    class  meta_any
     Opaque wrapper for values of any type. More...
     
    class  meta_associative_container
     Proxy object for associative containers. More...
     
    struct  meta_associative_container_traits
     Traits class template to be specialized to enable support for meta associative containers. More...
     
    struct  meta_associative_container_traits< std::map< Key, Value, Args... > >
     Meta associative container traits for std::maps of any type. More...
     
    struct  meta_associative_container_traits< std::set< Key, Args... > >
     Meta associative container traits for std::sets of any type. More...
     
    struct  meta_associative_container_traits< std::unordered_map< Key, Value, Args... > >
     Meta associative container traits for std::unordered_maps of any type. More...
     
    struct  meta_associative_container_traits< std::unordered_set< Key, Args... > >
     Meta associative container traits for std::unordered_sets of any type. More...
     
    struct  meta_class_template_tag
     Utility class to disambiguate class templates. More...
     
    struct  meta_container_traits
     Container traits. More...
     
    struct  meta_ctor
     Opaque wrapper for constructors. More...
     
    struct  meta_ctx
     Opaque container for a meta context. More...
     
    struct  meta_data
     Opaque wrapper for data members. More...
     
    struct  meta_factory
     Meta factory to be used for reflection purposes. More...
     
    struct  meta_factory< Type >
     Basic meta factory to be used for reflection purposes. More...
     
    struct  meta_factory< Type, Spec... >
     Extended meta factory to be used for reflection purposes. More...
     
    struct  meta_func
     Opaque wrapper for member functions. More...
     
    struct  meta_function_descriptor
     Primary template isn't defined on purpose. More...
     
    struct  meta_function_descriptor< Type, Ret(*)(Args...)>
     Meta function descriptor. More...
     
    struct  meta_function_descriptor< Type, Ret(Class::*)(Args...) const >
     Meta function descriptor. More...
     
    struct  meta_function_descriptor< Type, Ret(Class::*)(Args...)>
     Meta function descriptor. More...
     
    class  meta_function_helper
     Meta function helper. More...
     
    struct  meta_handle
     Opaque pointers to instances of any type. More...
     
    struct  meta_prop
     Opaque wrapper for properties of any type. More...
     
    class  meta_range
     Iterable range to use to iterate all types of meta objects. More...
     
    class  meta_sequence_container
     Proxy object for sequence containers. More...
     
    struct  meta_sequence_container_traits
     Traits class template to be specialized to enable support for meta sequence containers. More...
     
    struct  meta_sequence_container_traits< std::array< Type, N > >
     Meta sequence container traits for std::arrays of any type. More...
     
    struct  meta_sequence_container_traits< std::vector< Type, Args... > >
     Meta sequence container traits for std::vectors of any type. More...
     
    struct  meta_template_traits
     Traits class template to be specialized to enable support for meta template information. More...
     
    struct  meta_template_traits< Clazz< Args... > >
     General purpose traits class for generating meta template information. More...
     
    class  meta_type
     Opaque wrapper for types. More...
     
    struct  monostate
     Minimal implementation of the monostate pattern. More...
     
    struct  null_t
     Null object for all entity identifiers.
    - More...
     
    struct  overloaded
     Helper type for visitors. More...
     
    struct  poly_base
     Poly base class used to inject functionalities into concepts. More...
     
    struct  poly_inspector
     Inspector class used to infer the type of the virtual table. More...
     
    struct  poly_storage_traits
     Defines the poly storage type associate with a given entity type. More...
     
    class  poly_vtable
     Static virtual table factory. More...
     
    class  process
     Base class for processes. More...
     
    struct  process_adaptor
     Adaptor for lambdas and functors to turn them into processes. More...
     
    struct  radix_sort
     Function object for performing LSD radix sort. More...
     
    struct  resource_cache
     Simple cache for resources of a given type. More...
     
    struct  resource_handle
     Shared resource handle. More...
     
    class  resource_loader
     Base class for resource loaders. More...
     
    class  scheduler
     Cooperative scheduler for processes. More...
     
    struct  scoped_connection
     Scoped connection class. More...
     
    struct  service_locator
     Service locator, nothing more. More...
     
    class  sigh
     Unmanaged signal handler. More...
     
    class  sigh< Ret(Args...)>
     Unmanaged signal handler. More...
     
    class  sigh_storage_mixin
     Mixin type to use to add signal support to storage types. More...
     
    class  sink
     Sink class. More...
     
    class  sink< Ret(Args...)>
     Sink class. More...
    struct  type_identity
     Identity type trait. More...
     
    struct  size_of
     A type-only sizeof wrapper that returns 0 where sizeof complains. More...
    struct  size_of< Type, std::void_t< decltype(sizeof(Type))> >
     A type-only sizeof wrapper that returns 0 where sizeof complains. More...
     
    struct  std_sort
     Function object to wrap std::sort in a class type. More...
     
    struct  Storage
     Basic poly storage implementation. More...
     
    struct  storage_adapter_mixin
     Mixin type to use to wrap basic storage classes. More...
     
    struct  storage_traits
     Defines the component-to-storage conversion. More...
     
    struct  type_hash
     Type hash. More...
     
    struct  type_identity
     Identity type trait. More...
     
    class  type_info
     Implementation specific information about a type. More...
     
    struct  type_list
     A class to use to push around lists of types, nothing more. More...
     
    struct  type_list_element
     Primary template isn't defined on purpose. More...
     
    struct  type_list_element< Index, type_list< Type, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  type_list_element< 0u, type_list< Type, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  type_list_cat
     Primary template isn't defined on purpose. More...
     
    struct  type_list_cat< type_list< Type... > >
     Concatenates multiple type lists. More...
    struct  type_list_cat<>
     Concatenates multiple type lists. More...
     
    struct  type_list_cat< type_list< Type... >, type_list< Other... >, List... >
     Concatenates multiple type lists. More...
     
    struct  type_list_cat<>
     Concatenates multiple type lists. More...
    struct  type_list_cat< type_list< Type... > >
     Concatenates multiple type lists. More...
     
    struct  type_list_unique
     Primary template isn't defined on purpose. More...
     
    struct  type_list_unique< type_list< Type, Other... > >
     Removes duplicates types from a type list. More...
     
    struct  type_list_unique< type_list<> >
     Removes duplicates types from a type list. More...
     
    struct  type_list_contains
     Provides the member constant value to true if a type list contains a given type, false otherwise. More...
    struct  type_list_diff< type_list< Type... >, type_list< Other... > >
     Computes the difference between two type lists. More...
     
    struct  type_list_element
     Primary template isn't defined on purpose. More...
     
    struct  type_list_element< 0u, type_list< Type, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  type_list_element< Index, type_list< Type, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  type_list_unique
     Primary template isn't defined on purpose. More...
     
    struct  type_list_unique< type_list< Type, Other... > >
     Removes duplicates types from a type list. More...
     
    struct  type_list_unique< type_list<> >
     Removes duplicates types from a type list. More...
     
    struct  type_name
     Type name. More...
     
    struct  type_seq
     Type sequential identifier. More...
     
    struct  value_list
     A class to use to push around lists of constant values, nothing more. More...
     
    struct  value_list_cat
     Primary template isn't defined on purpose. More...
     
    struct  value_list_cat< value_list< Value... > >
     Concatenates multiple value lists. More...
     
    struct  value_list_cat< value_list< Value... >, value_list< Other... >, List... >
     Concatenates multiple value lists. More...
     
    struct  value_list_cat<>
     Concatenates multiple value lists. More...
     
    struct  value_list_element
     Primary template isn't defined on purpose. More...
     
    struct  value_list_element< 0u, value_list< Value, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  value_list_element< Index, value_list< Value, Other... > >
     Provides compile-time indexed access to the values of a value list. More...
     
    struct  value_list_element< 0u, value_list< Value, Other... > >
     Provides compile-time indexed access to the types of a type list. More...
     
    struct  value_list_cat
     Primary template isn't defined on purpose. More...
     
    struct  value_list_cat<>
     Concatenates multiple value lists. More...
     
    struct  value_list_cat< value_list< Value... >, value_list< Other... >, List... >
     Concatenates multiple value lists. More...
     
    struct  value_list_cat< value_list< Value... > >
     Concatenates multiple value lists. More...
     
    struct  is_equality_comparable
     Provides the member constant value to true if a given type is equality comparable, false otherwise. More...
     
    struct  is_applicable
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable< Func, Tuple< Args... > >
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable< Func, const Tuple< Args... > >
     Same as std::is_invocable, but with tuples. More...
     
    struct  is_applicable_r
     Same as std::is_invocable_r, but with tuples for arguments. More...
     
    struct  is_applicable_r< Ret, Func, std::tuple< Args... > >
     Same as std::is_invocable_r, but with tuples for arguments. More...
     
    struct  is_complete
     Provides the member constant value to true if a given type is complete, false otherwise. More...
     
    struct  is_complete< Type, std::void_t< decltype(sizeof(Type))> >
     Provides the member constant value to true if a given type is complete, false otherwise. More...
     
    struct  is_iterator
     Provides the member constant value to true if a given type is an iterator, false otherwise. More...
     
    struct  is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > >
     Provides the member constant value to true if a given type is an iterator, false otherwise. More...
     
    struct  is_iterator_type
     Provides the member constant value to true if a given type is of the required iterator type, false otherwise. More...
     
    struct  is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > >
     Provides the member constant value to true if a given type is of the required iterator type, false otherwise. More...
     
    struct  is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > >
     Provides the member constant value to true if a given type is of the required iterator type, false otherwise. More...
     
    struct  constness_as
     Transcribes the constness of a type to another type. More...
     
    struct  constness_as< To, const From >
     Transcribes the constness of a type to another type. More...
     
    class  member_class
     Extracts the class of a non-static member object or function. More...
     
    struct  identity
     Identity function object (waiting for C++20). More...
     
    struct  overloaded
     Helper type for visitors. More...
     
    struct  y_combinator
     Basic implementation of a y-combinator. More...
     
    struct  basic_component_traits
     Commonly used default traits for all types. More...
     
    struct  component_traits
     Common way to access various properties of components. More...
     
    class  entt_traits
     Entity traits. More...
     
    struct  null_t
     Null object for all entity identifiers.
    + More...
     
    struct  tombstone_t
     Tombstone object for all entity identifiers.
    + More...
     
    class  basic_sparse_set
     Basic sparse set implementation. More...
     
    struct  basic_storage
     Storage implementation dispatcher. More...
     
    class  basic_registry
     Fast and reliable entity-component system. More...
     
    struct  basic_view
     View implementation dispatcher. More...
     
    class  basic_runtime_view
     Runtime view. More...
     
    class  basic_group
     Group. More...
     
    class  basic_observer
     Observer. More...
     
    class  basic_organizer
     Utility class for creating a static task graph. More...
     
    struct  basic_handle
     Non-owning handle to an entity. More...
     
    class  basic_snapshot
     Utility class to create snapshots from a registry. More...
     
    class  basic_snapshot_loader
     Utility class to restore a snapshot as a whole. More...
     
    class  basic_continuous_loader
     Utility class for continuous loading. More...
     
    class  basic_group< Entity, exclude_t< Exclude... >, get_t< Get... > >
     Non-owning group. More...
     
    class  basic_group< Entity, exclude_t< Exclude... >, get_t< Get... >, Owned... >
     Owning group. More...
     
    struct  as_view
     Converts a registry to a view. More...
     
    struct  as_group
     Converts a registry to a group. More...
     
    struct  matcher
     Grouping matcher. More...
     
    struct  basic_collector
     Collector. More...
     
    struct  basic_collector<>
     Collector. More...
     
    struct  basic_collector< matcher< type_list< Reject... >, type_list< Require... >, Rule... >, Other... >
     Collector. More...
     
    struct  Storage
     Basic poly storage implementation. More...
     
    struct  poly_storage_traits
     Defines the poly storage type associate with a given entity type. More...
     
    class  basic_storage_impl
     Basic storage implementation. More...
     
    class  basic_storage_impl< Entity, Type, Allocator, std::enable_if_t< component_traits< Type >::ignore_if_empty::value &&std::is_empty_v< Type > > >
     Default constructor. More...
     
    struct  storage_adapter_mixin
     Mixin type to use to wrap basic storage classes. More...
     
    class  sigh_storage_mixin
     Mixin type to use to add signal support to storage types. More...
     
    struct  storage_traits
     Provides a common way to access certain properties of storage types. More...
     
    struct  exclude_t
     Alias for exclusion lists. More...
     
    struct  get_t
     Alias for lists of observed components. More...
     
    struct  stable_storage_policy
     Stable storage policy, aimed at pointer stability. More...
     
    struct  packed_storage_policy
     Packed storage policy, aimed at faster linear iteration. More...
     
    class  basic_view_impl
     View implementation. More...
     
    class  basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >
     Multi component view. More...
     
    class  basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >
     Single component view specialization. More...
     
    struct  basic_view< Entity, exclude_t< Exclude... >, Component... >
     View implementation dispatcher. More...
     
    struct  service_locator
     Service locator, nothing more. More...
     
    struct  adl_meta_pointer_like
     Fake ADL based lookup function for meta pointer-like types. More...
     
    struct  meta_container_traits
     Container traits. More...
     
    struct  basic_container
     Basic STL-compatible container traits. More...
     
    struct  basic_associative_container
     Basic STL-compatible associative container traits. More...
     
    struct  basic_dynamic_container
     Basic STL-compatible dynamic container traits. More...
     
    struct  basic_dynamic_associative_container
     Basic STL-compatible dynamic associative container traits. More...
     
    struct  basic_sequence_container
     Basic STL-compatible sequence container traits. More...
     
    struct  dynamic_associative_key_only_container
     STL-compatible dynamic associative key-only container traits. More...
     
    struct  dynamic_associative_key_value_container
     STL-compatible dynamic key-value associative container traits. More...
     
    struct  dynamic_sequence_container
     STL-compatible dynamic sequence container traits. More...
     
    struct  fixed_sequence_container
     STL-compatible fixed sequence container traits. More...
     
    struct  meta_sequence_container_traits< std::vector< Type, Args... > >
     Meta sequence container traits for std::vectors of any type. More...
     
    struct  meta_sequence_container_traits< std::array< Type, N > >
     Meta sequence container traits for std::arrays of any type. More...
     
    struct  meta_associative_container_traits< std::map< Key, Value, Args... > >
     Meta associative container traits for std::maps of any type. More...
     
    struct  meta_associative_container_traits< std::unordered_map< Key, Value, Args... > >
     Meta associative container traits for std::unordered_maps of any type. More...
     
    struct  meta_associative_container_traits< std::set< Key, Args... > >
     Meta associative container traits for std::sets of any type. More...
     
    struct  meta_associative_container_traits< std::unordered_set< Key, Args... > >
     Meta associative container traits for std::unordered_sets of any type. More...
     
    struct  meta_ctx
     Opaque container for a meta context. More...
     
    struct  meta_factory
     Meta factory to be used for reflection purposes. More...
     
    struct  meta_factory< Type, Spec... >
     Extended meta factory to be used for reflection purposes. More...
     
    struct  meta_factory< Type >
     Basic meta factory to be used for reflection purposes. More...
     
    class  meta_sequence_container
     Proxy object for sequence containers. More...
     
    class  meta_associative_container
     Proxy object for associative containers. More...
     
    class  meta_any
     Opaque wrapper for values of any type. More...
     
    struct  meta_handle
     Opaque pointers to instances of any type. More...
     
    struct  meta_prop
     Opaque wrapper for properties of any type. More...
     
    struct  meta_ctor
     Opaque wrapper for constructors. More...
     
    struct  meta_data
     Opaque wrapper for data members. More...
     
    struct  meta_func
     Opaque wrapper for member functions. More...
     
    class  meta_type
     Opaque wrapper for types. More...
     
    struct  is_meta_pointer_like< Type * >
     Makes plain pointers pointer-like types for the meta system. More...
     
    struct  is_meta_pointer_like< Type(*)[N]>
     Partial specialization used to reject pointers to arrays. More...
     
    struct  is_meta_pointer_like< std::shared_ptr< Type > >
     Makes std::shared_ptrs of any type pointer-like types for the meta system. More...
     
    struct  is_meta_pointer_like< std::unique_ptr< Type, Args... > >
     Makes std::unique_ptrs of any type pointer-like types for the meta system. More...
     
    struct  as_ref_t
     Empty class type used to request the as ref policy. More...
     
    struct  as_cref_t
     Empty class type used to request the as cref policy. More...
     
    struct  as_is_t
     Empty class type used to request the as-is policy. More...
     
    struct  as_void_t
     Empty class type used to request the as void policy. More...
     
    class  meta_range
     Iterable range to use to iterate all types of meta objects. More...
     
    struct  meta_class_template_tag
     Utility class to disambiguate class templates. More...
     
    struct  meta_template_traits< Clazz< Args... > >
     General purpose traits class for generating meta template information. More...
     
    struct  meta_template_traits
     Traits class template to be specialized to enable support for meta template information. More...
     
    struct  meta_sequence_container_traits
     Traits class template to be specialized to enable support for meta sequence containers. More...
     
    struct  meta_associative_container_traits
     Traits class template to be specialized to enable support for meta associative containers. More...
     
    struct  is_key_only_meta_associative_container
     Provides the member constant value to true if a meta associative container claims to wrap a key-only type, false otherwise. More...
     
    struct  is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > >
     Provides the member constant value to true if a meta associative container claims to wrap a key-only type, false otherwise. More...
     
    struct  is_meta_pointer_like
     Provides the member constant value to true if a given type is a pointer-like type from the point of view of the meta system, false otherwise. More...
     
    struct  is_meta_pointer_like< const Type >
     Partial specialization to ensure that const pointer-like types are also accepted. More...
     
    struct  meta_function_descriptor
     Primary template isn't defined on purpose. More...
     
    struct  meta_function_descriptor< Type, Ret(Class::*)(Args...) const >
     Meta function descriptor. More...
     
    struct  meta_function_descriptor< Type, Ret(Class::*)(Args...)>
     Meta function descriptor. More...
     
    struct  meta_function_descriptor< Type, Ret(*)(Args...)>
     Meta function descriptor. More...
     
    class  meta_function_helper
     Meta function helper. More...
     
    class  basic_poly
     Static polymorphism made simple and within everyone's reach. More...
     
    struct  poly_inspector
     Inspector class used to infer the type of the virtual table. More...
     
    class  poly_vtable
     Static virtual table factory. More...
     
    struct  poly_base
     Poly base class used to inject functionalities into concepts. More...
     
    class  process
     Base class for processes. More...
     
    struct  process_adaptor
     Adaptor for lambdas and functors to turn them into processes. More...
     
    class  scheduler
     Cooperative scheduler for processes. More...
     
    struct  resource_cache
     Simple cache for resources of a given type. More...
     
    class  resource_handle
     Shared resource handle. More...
     
    class  resource_loader
     Base class for resource loaders. More...
     
    struct  connect_arg_t
     Used to wrap a function or a member of a specified type. More...
     
    class  delegate
     Basic delegate implementation. More...
     
    class  delegate< Ret(Args...)>
     Utility class to use to send around functions and members. More...
     
    class  dispatcher
     Basic dispatcher implementation. More...
     
    class  emitter
     General purpose event emitter. More...
     
    class  sink
     Sink class. More...
     
    class  sigh
     Unmanaged signal handler. More...
     
    class  sigh< Ret(Args...)>
     Unmanaged signal handler. More...
     
    class  connection
     Connection class. More...
     
    struct  scoped_connection
     Scoped connection class. More...
     
    class  sink< Ret(Args...)>
     Sink class. More...
     
    @@ -584,10 +609,10 @@ Typedefs using  - - - + + + @@ -645,7 +670,7 @@ using  - + - + - + + + +

    Typedefs

    id_type = std::uint32_t
     Alias declaration for type identifiers.
     
    -using any = basic_any< sizeof(double[2])>
     Alias declaration for the most common use case.
     
    +using any = basic_any<>
     Alias declaration for the most common use case.
     
    using hashed_string = basic_hashed_string< char >
     Aliases for common character types.
     Alias declaration for the most common use case.
     
    template<typename... Args>
    using storage = basic_storage< entity, Args... >
    using storage = basic_storage< entity, Args... >
     Alias declaration for the most common use case. More...
     
    @@ -689,7 +714,7 @@ using  Alias declaration for the most common use case.
     
    template<typename... Args>
    using view = basic_view< entity, Args... >
    using view = basic_view< entity, Args... >
     Alias declaration for the most common use case. More...
     
    @@ -711,57 +736,70 @@ using 

    Enumerations

    enum  entity : id_type
    enum class  entity : id_type
     Default entity identifier.
     
    enum class  deletion_policy : std::uint8_t { swap_and_pop = 0u +, in_place = 1u + }
     Sparse set deletion policy. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -770,34 +808,42 @@ Functions - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -806,66 +852,74 @@ Functions - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -874,38 +928,46 @@ Functions + + + + - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +

    Functions

    template<std::size_t Len, std::size_t Align>
    bool operator!= (const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
     Checks if two wrappers differ in their content. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (const basic_any< Len, Align > &data) noexcept
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (basic_any< Len, Align > &data) noexcept
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (basic_any< Len, Align > &&data) noexcept
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    const Type * any_cast (const basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type * any_cast (basic_any< Len, Align > *data) noexcept
     Performs type-safe access to the contained object. More...
     
    template<typename Char , std::size_t N>
     basic_hashed_string (const Char(&str)[N]) noexcept -> basic_hashed_string< Char >
     Deduction guide. More...
     
    template<typename Char >
    constexpr bool operator!= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) noexcept
     Compares two hashed strings. More...
     
    constexpr entt::hashed_string operator""_hs (const char *str, std::size_t) noexcept
     User defined literal for hashed strings. More...
     
    constexpr entt::hashed_wstring operator""_hws (const wchar_t *str, std::size_t) noexcept
     User defined literal for hashed wstrings. More...
     
    bool operator!= (const type_info &lhs, const type_info &rhs) noexcept
     Compares the contents of two type info objects. More...
     
    template<typename Type >
    type_info type_id () noexcept
     Returns the type info object for a given type. More...
     
    template<std::size_t Len, std::size_t Align>
    bool operator!= (const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
     Checks if two wrappers differ in their content. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (const basic_any< Len, Align > &data)
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (basic_any< Len, Align > &data)
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type any_cast (basic_any< Len, Align > &&data)
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    const Type * any_cast (const basic_any< Len, Align > *data)
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len, std::size_t Align>
    Type * any_cast (basic_any< Len, Align > *data)
     Performs type-safe access to the contained object. More...
     
    template<typename Type , std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    basic_any< Len, Align > make_any (Args &&... args)
     Constructs a wrapper from a given type, passing it all arguments. More...
     
    template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type >
    basic_any< Len, Align > forward_as_any (Type &&value)
     Forwards its argument and avoids copies for lvalue references. More...
     
    template<typename Char , std::size_t N>
     basic_hashed_string (const Char(&str)[N]) -> basic_hashed_string< Char >
     Deduction guide. More...
     
    template<typename Char >
    constexpr bool operator!= (const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs)
     Compares two hashed strings. More...
     
    constexpr entt::hashed_string operator""_hs (const char *str, std::size_t)
     User defined literal for hashed strings. More...
     
    constexpr entt::hashed_wstring operator""_hws (const wchar_t *str, std::size_t)
     User defined literal for hashed wstrings. More...
     
    bool operator!= (const type_info &lhs, const type_info &rhs)
     Compares the contents of two type info objects. More...
     
    template<typename Type >
    type_info type_id ()
     Returns the type info object for a given type. More...
     
    template<typename... Type, typename... Other>
    constexpr type_list< Type..., Other... > operator+ (type_list< Type... >, type_list< Other... >)
     Concatenates multiple type lists. More...
    constexpr value_list< Value..., Other... > operator+ (value_list< Value... >, value_list< Other... >)
     Concatenates multiple value lists. More...
     
    template<typename Type , typename Class >
    constexpr auto overload (Type Class::*member) noexcept
     Constant utility to disambiguate overloaded members of a class. More...
     
    template<typename Func >
    constexpr auto overload (Func *func) noexcept
     Constant utility to disambiguate overloaded functions. More...
     
    template<typename Type , typename Class >
    constexpr auto overload (Type Class::*member)
     Constant utility to disambiguate overloaded members of a class. More...
     
    template<typename Func >
    constexpr auto overload (Func *func)
     Constant utility to disambiguate overloaded functions. More...
     
    template<class... Func>
     overloaded (Func...) -> overloaded< Func... >
     Deduction guide. More...
     
    template<typename Entity >
    constexpr auto to_integral (const Entity entity) noexcept
     Converts an entity type to its underlying type. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity &entity, const null_t &other) noexcept
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity &entity, const null_t &other) noexcept
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Type , typename Other >
    bool operator!= (const basic_handle< Type > &lhs, const basic_handle< Other > &rhs) noexcept
     Compares two handles. More...
     
    template<typename Entity >
    constexpr auto to_integral (const Entity entity)
     Converts an entity to its underlying type. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity, const null_t other)
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity, const null_t other)
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity, const tombstone_t other)
     Compares a tombstone object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity, const tombstone_t other)
     Compares a tombstone object and an entity identifier of any type. More...
     
    template<typename Type , typename Other >
    bool operator!= (const basic_handle< Type > &lhs, const basic_handle< Other > &rhs)
     Compares two handles. More...
     
    template<typename Entity >
     basic_handle (basic_registry< Entity > &, Entity) -> basic_handle< Entity >
     Deduction guide. More...
     basic_handle (const basic_registry< Entity > &, Entity) -> basic_handle< const Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_view (basic_registry< Entity > &) noexcept -> as_view< Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_view (const basic_registry< Entity > &) noexcept -> as_view< const Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_group (basic_registry< Entity > &) noexcept -> as_group< Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_group (const basic_registry< Entity > &) noexcept -> as_group< const Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_view (basic_registry< Entity > &) -> as_view< Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_view (const basic_registry< Entity > &) -> as_view< const Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_group (basic_registry< Entity > &) -> as_group< Entity >
     Deduction guide. More...
     
    template<typename Entity >
     as_group (const basic_registry< Entity > &) -> as_group< const Entity >
     Deduction guide. More...
     
    template<auto Member, typename Entity = entity>
    void invoke (basic_registry< Entity > &reg, const Entity entt)
     Helper to create a listener that directly invokes a member function. More...
     
    template<typename Entity , typename Component >
    Entity to_entity (const basic_registry< Entity > &reg, const Component &component)
     Returns the entity associated with a given component. More...
     
    template<typename Type >
    auto get_as_tuple ([[maybe_unused]] Type &container, [[maybe_unused]] const typename Type::entity_type entity)
     Gets the element assigned to an entity from a storage, if any. More...
     
    template<typename... Storage>
     basic_view (Storage &... storage) noexcept -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
     Deduction guide. More...
     
    template<typename Entity , typename Component >
    Entity to_entity (const basic_registry< Entity > &reg, const Component &instance)
     Returns the entity associated with a given component. More...
     
    template<typename Type >
    auto get_as_tuple ([[maybe_unused]] Type &container, [[maybe_unused]] const typename Type::entity_type entt)
     Gets the element assigned to an entity from a storage, if any. More...
     
    template<typename... Storage>
     basic_view (Storage &... storage) -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
     Deduction guide. More...
     
    template<typename Entity , typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    auto operator| (const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &lhs, const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &rhs)
    auto operator| (const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &lhs, const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &rhs)
     Combines two views in a more specific one. More...
     
    template<typename Type >
    decltype(auto) dereference_meta_pointer_like (const Type &value)
     ADL based lookup function for dereferencing meta pointer-like types. More...
     
    template<typename Type >
    auto meta () noexcept
     Utility function to use for reflection. More...
     
    bool operator!= (const meta_any &lhs, const meta_any &rhs) noexcept
     Checks if two wrappers differ in their content. More...
     
    bool operator!= (const meta_type &lhs, const meta_type &rhs) noexcept
     Checks if two objects refer to the same type. More...
     
    template<typename Type >
    meta_type resolve () noexcept
     Returns the meta type associated with a given type. More...
     
    meta_type resolve (const id_type id) noexcept
     Returns the meta type associated with a given identifier, if any. More...
     
    meta_type resolve (const type_info info) noexcept
     Returns the meta type associated with a given type info object, if any. More...
     
    template<typename Type >
    auto meta ()
     Utility function to use for reflection. More...
     
    bool operator!= (const meta_any &lhs, const meta_any &rhs)
     Checks if two wrappers differ in their content. More...
     
    template<typename Type , typename... Args>
    meta_any make_meta (Args &&... args)
     Constructs a wrapper from a given type, passing it all arguments. More...
     
    template<typename Type >
    meta_any forward_as_meta (Type &&value)
     Forwards its argument and avoids copies for lvalue references. More...
     
    bool operator!= (const meta_type &lhs, const meta_type &rhs)
     Checks if two objects refer to the same type. More...
     
    template<typename Type >
    meta_type resolve ()
     Returns the meta type associated with a given type. More...
     
    meta_type resolve (const id_type id)
     Returns the meta type associated with a given identifier, if any. More...
     
    meta_type resolve (const type_info info)
     Returns the meta type associated with a given type info object, if any. More...
     
    template<typename Type , typename... Args, std::size_t... Index>
    meta_any meta_construct (meta_any *const args, std::index_sequence< Index... >)
     Constructs an instance given a list of erased parameters, if possible. More...
    bool meta_setter ([[maybe_unused]] meta_handle instance, [[maybe_unused]] meta_any value)
     Sets the value of a given variable. More...
     
    template<typename Policy = as_is_t, typename Type >
    meta_any meta_dispatch (Type &&value)
     Wraps a value depending on the given policy. More...
     
    template<typename Type , auto Data, typename Policy = as_is_t>
    meta_any meta_getter ([[maybe_unused]] meta_handle instance)
     Gets the value of a given variable. More...
     
    template<typename Type , auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    meta_any meta_invoke ([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence< Index... >)
     Invokes a function given a list of erased parameters, if possible. More...
     
    template<typename Type , auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    std::enable_if_t<!std::is_invocable_v< decltype(Candidate)>, meta_anymeta_invoke ([[maybe_unused]] meta_handle instance, meta_any *args, std::index_sequence< Index... >)
     Invokes a function given a list of erased parameters, if possible. More...
     
    template<typename Type , auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    std::enable_if_t< std::is_invocable_v< decltype(Candidate)>, meta_anymeta_invoke (meta_handle, meta_any *, std::index_sequence< Index... >)
     Invokes a function given a list of erased parameters, if possible. More...
     
    template<auto Member, typename Poly , typename... Args>
    decltype(auto) poly_call (Poly &&self, Args &&... args)
     Shortcut for calling poly_base<Type>invoke. More...
     
    template<typename Ret , typename... Args>
    bool operator!= (const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs) noexcept
     Compares the contents of two delegates. More...
     
    template<auto Candidate>
     delegate (connect_arg_t< Candidate >) noexcept -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
     Deduction guide. More...
     
    template<auto Candidate, typename Type >
     delegate (connect_arg_t< Candidate >, Type &&) noexcept -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type >>>
     Deduction guide. More...
     
    template<typename Ret , typename... Args>
     delegate (Ret(*)(const void *, Args...), const void *=nullptr) noexcept -> delegate< Ret(Args...)>
     Deduction guide. More...
     
    template<typename Ret , typename... Args>
     sink (sigh< Ret(Args...)> &) noexcept -> sink< Ret(Args...)>
     Deduction guide. More...
     
    template<typename Ret , typename... Args>
    bool operator!= (const delegate< Ret(Args...)> &lhs, const delegate< Ret(Args...)> &rhs)
     Compares the contents of two delegates. More...
     
    template<auto Candidate>
     delegate (connect_arg_t< Candidate >) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
     Deduction guide. More...
     
    template<auto Candidate, typename Type >
     delegate (connect_arg_t< Candidate >, Type &&) -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type >>>
     Deduction guide. More...
     
    template<typename Ret , typename... Args>
     delegate (Ret(*)(const void *, Args...), const void *=nullptr) -> delegate< Ret(Args...)>
     Deduction guide. More...
     
    template<typename Ret , typename... Args>
     sink (sigh< Ret(Args...)> &) -> sink< Ret(Args...)>
     Deduction guide. More...
     
    @@ -917,49 +979,52 @@ Variables - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1011,7 +1076,7 @@ template<typename... Args> -

    Definition at line 108 of file fwd.hpp.

    +

    Definition at line 109 of file fwd.hpp.

    @@ -1038,7 +1103,7 @@ template<typename To , typename From > -

    Definition at line 632 of file type_traits.hpp.

    +

    Definition at line 653 of file type_traits.hpp.

    @@ -1064,7 +1129,7 @@ template<typename... Args> -

    Definition at line 140 of file fwd.hpp.

    +

    Definition at line 141 of file fwd.hpp.

    @@ -1090,7 +1155,7 @@ template<typename... Args> -

    Definition at line 100 of file fwd.hpp.

    +

    Definition at line 101 of file fwd.hpp.

    @@ -1116,7 +1181,7 @@ template<auto Value> -

    Definition at line 111 of file type_traits.hpp.

    +

    Definition at line 112 of file type_traits.hpp.

    @@ -1142,7 +1207,7 @@ template<typename Member > -

    Definition at line 663 of file type_traits.hpp.

    +

    Definition at line 684 of file type_traits.hpp.

    @@ -1169,7 +1234,7 @@ template<typename Type , typename Candidate > -

    Definition at line 119 of file utility.hpp.

    +

    Definition at line 118 of file utility.hpp.

    @@ -1208,7 +1273,7 @@ template<typename Concept > template<typename... Args>

    Variables

    constexpr choice_t< N > choice {}
     Variable template for the choice trick. More...
     
    template<class Type >
    constexpr auto size_of_v = size_of<Type>::value
     Helper variable template. More...
     
    template<class Type >
    constexpr std::size_t size_of_v = size_of<Type>::value
     Helper variable template. More...
     
    template<auto Value, typename >
    constexpr auto unpack_as_v = Value
     Helper variable template to be used to repeat the same value a number of times equal to the size of a given parameter pack. More...
     
    template<class List , typename Type >
    constexpr auto type_list_contains_v = type_list_contains<List, Type>::value
     Helper variable template. More...
     
    template<class List , typename Type >
    constexpr bool type_list_contains_v = type_list_contains<List, Type>::value
     Helper variable template. More...
     
    template<std::size_t Index, typename List >
    constexpr auto value_list_element_v = value_list_element<Index, List>::value
     Helper type. More...
     
    template<class Type >
    constexpr auto is_equality_comparable_v = is_equality_comparable<Type>::value
     Helper variable template. More...
     
    template<typename Func , typename Args >
    constexpr auto is_applicable_v = is_applicable<Func, Args>::value
     Helper variable template. More...
     
    template<typename Ret , typename Func , typename Args >
    constexpr auto is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
     Helper variable template. More...
     
    template<typename Type >
    constexpr auto is_complete_v = is_complete<Type>::value
     Helper variable template. More...
     
    template<typename Type >
    constexpr auto is_std_hashable_v = is_std_hashable<Type>::value
     Helper variable template. More...
     
    template<typename Type >
    constexpr auto is_empty_v = is_empty<Type>::value
     Helper variable template. More...
     
    template<class Type >
    constexpr bool is_equality_comparable_v = is_equality_comparable<Type>::value
     Helper variable template. More...
     
    template<typename Func , typename Args >
    constexpr bool is_applicable_v = is_applicable<Func, Args>::value
     Helper variable template. More...
     
    template<typename Ret , typename Func , typename Args >
    constexpr bool is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
     Helper variable template. More...
     
    template<typename Type >
    constexpr bool is_complete_v = is_complete<Type>::value
     Helper variable template. More...
     
    template<typename Type >
    constexpr bool is_iterator_v = is_iterator<Type>::value
     Helper variable template. More...
     
    template<typename Type , typename It >
    constexpr bool is_iterator_type_v = is_iterator_type<Type, It>::value
     Helper variable template. More...
     
    constexpr null_t null {}
     Compile-time constant for null entities. More...
     
    constexpr tombstone_t tombstone {}
     Compile-time constant for tombstone entities. More...
     
    constexpr basic_collector collector {}
     Variable template used to ease the definition of collectors.
    - +
    using entt::storage = typedef basic_storage<entity, Args...>using entt::storage = typedef basic_storage<entity, Args...>
    @@ -1221,7 +1286,7 @@ template<typename... Args>
    -

    Definition at line 72 of file fwd.hpp.

    +

    Definition at line 73 of file fwd.hpp.

    @@ -1247,7 +1312,7 @@ template<id_type Value> -

    Definition at line 119 of file type_traits.hpp.

    +

    Definition at line 120 of file type_traits.hpp.

    @@ -1273,7 +1338,7 @@ template<typename Type > -

    Definition at line 61 of file type_traits.hpp.

    +

    Definition at line 62 of file type_traits.hpp.

    @@ -1299,7 +1364,7 @@ template<typename... List> -

    Definition at line 225 of file type_traits.hpp.

    +

    Definition at line 226 of file type_traits.hpp.

    @@ -1325,7 +1390,7 @@ template<typename... List> -

    Definition at line 315 of file type_traits.hpp.

    +

    Definition at line 316 of file type_traits.hpp.

    @@ -1352,7 +1417,7 @@ template<std::size_t Index, typename List > -

    Definition at line 170 of file type_traits.hpp.

    +

    Definition at line 171 of file type_traits.hpp.

    @@ -1378,7 +1443,7 @@ template<typename Type > -

    Definition at line 262 of file type_traits.hpp.

    +

    Definition at line 263 of file type_traits.hpp.

    @@ -1404,7 +1469,7 @@ template<typename Type , typename > -

    Definition at line 94 of file type_traits.hpp.

    +

    Definition at line 95 of file type_traits.hpp.

    @@ -1430,7 +1495,7 @@ template<typename... List> -

    Definition at line 421 of file type_traits.hpp.

    +

    Definition at line 422 of file type_traits.hpp.

    @@ -1443,7 +1508,7 @@ template<typename... List> template<typename... Args> - +
    using entt::view = typedef basic_view<entity, Args...>using entt::view = typedef basic_view<entity, Args...>
    @@ -1456,21 +1521,51 @@ template<typename... Args>
    -

    Definition at line 128 of file fwd.hpp.

    +

    Definition at line 129 of file fwd.hpp.

    + + + +

    Enumeration Type Documentation

    + +

    ◆ deletion_policy

    + +
    +
    + + + + + +
    + + + + +
    enum entt::deletion_policy : std::uint8_t
    +
    +strong
    +
    + +

    Sparse set deletion policy.

    + + + +
    Enumerator
    swap_and_pop 

    Swap-and-pop deletion policy.

    +
    in_place 

    In-place deletion policy.

    +
    + +

    Definition at line 21 of file sparse_set.hpp.

    Function Documentation

    - -

    ◆ any_cast() [1/5]

    + +

    ◆ any_cast() [1/5]

    template<typename Type , std::size_t Len, std::size_t Align>
    - - - - - -
    @@ -1480,11 +1575,6 @@ template<typename Type , std::size_t Len, std::size_t Align>
    Type entt::any_cast
    -
    -noexcept

    Performs type-safe access to the contained object.

    @@ -1504,20 +1594,17 @@ template<typename Type , std::size_t Len, std::size_t Align>
    Returns
    The element converted to the requested type.
    -

    Definition at line 381 of file any.hpp.

    +

    Definition at line 401 of file any.hpp.

    - -

    ◆ any_cast() [2/5]

    + +

    ◆ any_cast() [2/5]

    template<typename Type , std::size_t Len, std::size_t Align>
    - - - - - -
    @@ -1527,152 +1614,6 @@ template<typename Type , std::size_t Len, std::size_t Align>
    Type entt::any_cast
    -
    -noexcept
    -
    - -

    Performs type-safe access to the contained object.

    -
    Template Parameters
    - - - - -
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    -
    -
    -
    Parameters
    - - -
    dataTarget any object.
    -
    -
    -
    Returns
    The element converted to the requested type.
    - -

    Definition at line 371 of file any.hpp.

    - -
    -
    - -

    ◆ any_cast() [3/5]

    - -
    -
    -
    -template<typename Type , std::size_t Len, std::size_t Align>
    - - - - - -
    - - - - - - - - -
    Type* entt::any_cast (basic_any< Len, Align > * data)
    -
    -noexcept
    -
    - -

    Performs type-safe access to the contained object.

    -
    Template Parameters
    - - - - -
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    -
    -
    -
    Parameters
    - - -
    dataTarget any object.
    -
    -
    -
    Returns
    The element converted to the requested type.
    - -

    Definition at line 398 of file any.hpp.

    - -
    -
    - -

    ◆ any_cast() [4/5]

    - -
    -
    -
    -template<typename Type , std::size_t Len, std::size_t Align>
    - - - - - -
    - - - - - - - - -
    Type entt::any_cast (const basic_any< Len, Align > & data)
    -
    -noexcept
    -
    - -

    Performs type-safe access to the contained object.

    -
    Template Parameters
    - - - - -
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    -
    -
    -
    Parameters
    - - -
    dataTarget any object.
    -
    -
    -
    Returns
    The element converted to the requested type.
    - -

    Definition at line 362 of file any.hpp.

    - -
    -
    - -

    ◆ any_cast() [5/5]

    - -
    -
    -
    -template<typename Type , std::size_t Len, std::size_t Align>
    - - - - - -
    - - - - - - - - -
    const Type* entt::any_cast (const basic_any< Len, Align > * data)
    -
    -noexcept

    Performs type-safe access to the contained object.

    @@ -1696,16 +1637,130 @@ template<typename Type , std::size_t Len, std::size_t Align>
    - -

    ◆ as_group() [1/2]

    + +

    ◆ any_cast() [3/5]

    + +
    +
    +
    +template<typename Type , std::size_t Len, std::size_t Align>
    + + + + + + + + +
    Type* entt::any_cast (basic_any< Len, Align > * data)
    +
    + +

    Performs type-safe access to the contained object.

    +
    Template Parameters
    + + + + +
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    +
    +
    +
    Parameters
    + + +
    dataTarget any object.
    +
    +
    +
    Returns
    The element converted to the requested type.
    + +

    Definition at line 418 of file any.hpp.

    + +
    +
    + +

    ◆ any_cast() [4/5]

    + +
    +
    +
    +template<typename Type , std::size_t Len, std::size_t Align>
    + + + + + + + + +
    Type entt::any_cast (const basic_any< Len, Align > & data)
    +
    + +

    Performs type-safe access to the contained object.

    +
    Template Parameters
    + + + + +
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    +
    +
    +
    Parameters
    + + +
    dataTarget any object.
    +
    +
    +
    Returns
    The element converted to the requested type.
    + +

    Definition at line 382 of file any.hpp.

    + +
    +
    + +

    ◆ any_cast() [5/5]

    + +
    +
    +
    +template<typename Type , std::size_t Len, std::size_t Align>
    + + + + + + + + +
    const Type* entt::any_cast (const basic_any< Len, Align > * data)
    +
    + +

    Performs type-safe access to the contained object.

    +
    Template Parameters
    + + + + +
    TypeType to which conversion is required.
    LenSize of the storage reserved for the small buffer optimization.
    AlignAlignment requirement.
    +
    +
    +
    Parameters
    + + +
    dataTarget any object.
    +
    +
    +
    Returns
    The element converted to the requested type.
    + +

    Definition at line 411 of file any.hpp.

    + +
    +
    + +

    ◆ as_group() [1/2]

    template<typename Entity >
    - - - - - -
    @@ -1715,34 +1770,25 @@ template<typename Entity >
    entt::as_group -> as_group< Entity >
    -
    -noexcept

    Deduction guide.

    -

    It allows to deduce the constness of a registry directly from the instance provided to the constructor.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    - -

    ◆ as_group() [2/2]

    + +

    ◆ as_group() [2/2]

    template<typename Entity >
    - - - - - -
    @@ -1752,34 +1798,25 @@ template<typename Entity >
    entt::as_group -> as_group< const Entity >
    -
    -noexcept

    Deduction guide.

    -

    It allows to deduce the constness of a registry directly from the instance provided to the constructor.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    - -

    ◆ as_view() [1/2]

    + +

    ◆ as_view() [1/2]

    template<typename Entity >
    - - - - - -
    @@ -1789,34 +1826,25 @@ template<typename Entity >
    entt::as_view -> as_view< Entity >
    -
    -noexcept

    Deduction guide.

    -

    It allows to deduce the constness of a registry directly from the instance provided to the constructor.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    - -

    ◆ as_view() [2/2]

    + +

    ◆ as_view() [2/2]

    template<typename Entity >
    - - - - - -
    @@ -1826,18 +1854,12 @@ template<typename Entity >
    entt::as_view -> as_view< const Entity >
    -
    -noexcept

    Deduction guide.

    -

    It allows to deduce the constness of a registry directly from the instance provided to the constructor.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -1875,7 +1897,7 @@ template<typename Entity >

    Deduction guide.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -1913,23 +1935,20 @@ template<typename Entity >

    Deduction guide.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    - -

    ◆ basic_hashed_string()

    + +

    ◆ basic_hashed_string()

    template<typename Char , std::size_t N>
    - - - - - -
    @@ -1939,11 +1958,6 @@ template<typename Char , std::size_t N>
    entt::basic_hashed_string -> basic_hashed_string< Char >
    -
    -noexcept

    Deduction guide.

    @@ -1964,30 +1978,22 @@ template<typename Char , std::size_t N>
    - -

    ◆ basic_view()

    + +

    ◆ basic_view()

    template<typename... Storage>
    - - - - - -
    - + - +
    entt::basic_view entt::basic_view ( Storage &...  storage) -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... > -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
    -
    -noexcept

    Deduction guide.

    @@ -2006,16 +2012,13 @@ template<typename... Storage>
    - -

    ◆ delegate() [1/3]

    + +

    ◆ delegate() [1/3]

    template<auto Candidate>
    - - - - - -
    @@ -2025,11 +2028,6 @@ template<auto Candidate>
    entt::delegate -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate)>>>
    -
    -noexcept

    Deduction guide.

    @@ -2042,16 +2040,13 @@ template<auto Candidate>
    - -

    ◆ delegate() [2/3]

    + +

    ◆ delegate() [2/3]

    template<auto Candidate, typename Type >
    - - - - - -
    @@ -2071,11 +2066,6 @@ template<auto Candidate, typename Type >
    entt::delegate -> delegate< std::remove_pointer_t< internal::function_pointer_t< decltype(Candidate), Type >>>
    -
    -noexcept

    Deduction guide.

    @@ -2089,16 +2079,13 @@ template<auto Candidate, typename Type >
    - -

    ◆ delegate() [3/3]

    + +

    ◆ delegate() [3/3]

    template<typename Ret , typename... Args>
    - - - - - -
    @@ -2118,11 +2105,6 @@ template<typename Ret , typename... Args>
    entt::delegate -> delegate< Ret(Args...)>
    -
    -noexcept

    Deduction guide.

    @@ -2173,8 +2155,84 @@ template<typename Type >
    - -

    ◆ get_as_tuple()

    + +

    ◆ forward_as_any()

    + +
    +
    +
    +template<std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename Type >
    + + + + + + + + +
    basic_any<Len, Align> entt::forward_as_any (Type && value)
    +
    + +

    Forwards its argument and avoids copies for lvalue references.

    +
    Template Parameters
    + + + + +
    LenSize of the storage reserved for the small buffer optimization.
    AlignOptional alignment requirement.
    TypeType of argument to use to construct the new instance.
    +
    +
    +
    Parameters
    + + +
    valueParameter to use to construct the instance.
    +
    +
    +
    Returns
    A properly initialized and not necessarily owning wrapper.
    + +

    Definition at line 448 of file any.hpp.

    + +
    +
    + +

    ◆ forward_as_meta()

    + +
    +
    +
    +template<typename Type >
    + + + + + + + + +
    meta_any entt::forward_as_meta (Type && value)
    +
    + +

    Forwards its argument and avoids copies for lvalue references.

    +
    Template Parameters
    + + +
    TypeType of argument to use to construct the new instance.
    +
    +
    +
    Parameters
    + + +
    valueParameter to use to construct the instance.
    +
    +
    +
    Returns
    A properly initialized and not necessarily owning wrapper.
    + +

    Definition at line 613 of file meta.hpp.

    + +
    +
    + +

    ◆ get_as_tuple()

    @@ -2191,7 +2249,7 @@ template<typename Type >
    [[maybe_unused] ] const typename Type::entity_type  - entity  + entt  @@ -2211,13 +2269,13 @@ template<typename Type >
    Parameters
    - +
    containerA valid instance of a storage class.
    entityA valid entity identifier.
    enttA valid entity identifier.
    Returns
    A possibly empty tuple containing the requested element.
    -

    Definition at line 806 of file storage.hpp.

    +

    Definition at line 1031 of file storage.hpp.

    @@ -2253,7 +2311,7 @@ template<auto Member, typename Entity = entity>
    Template Parameters
    - +
    MemberMember function to invoke on a component of the given type.
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -2265,20 +2323,95 @@ template<auto Member, typename Entity = entity> -

    Definition at line 130 of file helper.hpp.

    +

    Definition at line 129 of file helper.hpp.

    - -

    ◆ meta()

    + +

    ◆ make_any()

    + +
    +
    +
    +template<typename Type , std::size_t Len = basic_any<>::length, std::size_t Align = basic_any<Len>::alignment, typename... Args>
    + + + + + + + + +
    basic_any<Len, Align> entt::make_any (Args &&... args)
    +
    + +

    Constructs a wrapper from a given type, passing it all arguments.

    +
    Template Parameters
    + + + + + +
    TypeType of object to use to initialize the wrapper.
    LenSize of the storage reserved for the small buffer optimization.
    AlignOptional alignment requirement.
    ArgsTypes of arguments to use to construct the new instance.
    +
    +
    +
    Parameters
    + + +
    argsParameters to use to construct the instance.
    +
    +
    +
    Returns
    A properly initialized wrapper for an object of the given type.
    + +

    Definition at line 434 of file any.hpp.

    + +
    +
    + +

    ◆ make_meta()

    + +
    +
    +
    +template<typename Type , typename... Args>
    + + + + + + + + +
    meta_any entt::make_meta (Args &&... args)
    +
    + +

    Constructs a wrapper from a given type, passing it all arguments.

    +
    Template Parameters
    + + + +
    TypeType of object to use to initialize the wrapper.
    ArgsTypes of arguments to use to construct the new instance.
    +
    +
    +
    Parameters
    + + +
    argsParameters to use to construct the instance.
    +
    +
    +
    Returns
    A properly initialized wrapper for an object of the given type.
    + +

    Definition at line 601 of file meta.hpp.

    + +
    +
    + +

    ◆ meta()

    template<typename Type >
    - - - - - -
    @@ -2287,11 +2420,6 @@ template<typename Type >
    auto entt::meta
    -
    -noexcept

    Utility function to use for reflection.

    @@ -2305,7 +2433,7 @@ template<typename Type >
    Returns
    A meta factory for the given type.
    -

    Definition at line 564 of file factory.hpp.

    +

    Definition at line 587 of file factory.hpp.

    @@ -2354,7 +2482,45 @@ template<typename Type , typename... Args, std::size_t... Index>
    Returns
    A meta any containing the new instance, if any.
    -

    Definition at line 142 of file utility.hpp.

    +

    Definition at line 141 of file utility.hpp.

    + + + + +

    ◆ meta_dispatch()

    + +
    +
    +
    +template<typename Policy = as_is_t, typename Type >
    + + + + + + + + +
    meta_any entt::meta_dispatch (Type && value)
    +
    + +

    Wraps a value depending on the given policy.

    +
    Template Parameters
    + + + +
    PolicyOptional policy (no policy set by default).
    TypeType of value to wrap.
    +
    +
    +
    Parameters
    + + +
    valueValue to wrap.
    +
    +
    +
    Returns
    A meta any containing the returned value.
    + +

    Definition at line 208 of file utility.hpp.

    @@ -2393,12 +2559,12 @@ template<typename Type , auto Data, typename Policy = as_is_t>
    Returns
    A meta any containing the value of the underlying variable.
    -

    Definition at line 208 of file utility.hpp.

    +

    Definition at line 232 of file utility.hpp.

    - -

    ◆ meta_invoke()

    + +

    ◆ meta_invoke() [1/2]

    @@ -2406,7 +2572,7 @@ template<typename Type , auto Data, typename Policy = as_is_t>
    template<typename Type , auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    - + @@ -2450,7 +2616,57 @@ template<typename Type , auto Candidate, typename Policy = as_is_t, std::siz
    Returns
    A meta any containing the returned value, if any.
    -

    Definition at line 259 of file utility.hpp.

    +

    Definition at line 272 of file utility.hpp.

    + + + + +

    ◆ meta_invoke() [2/2]

    + +
    +
    +
    +template<typename Type , auto Candidate, typename Policy = as_is_t, std::size_t... Index>
    +
    meta_any entt::meta_invoke std::enable_if_t<!std::is_invocable_v<decltype(Candidate)>, meta_any> entt::meta_invoke ( [[maybe_unused] ] meta_handle  instance,
    + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<std::is_invocable_v<decltype(Candidate)>, meta_any> entt::meta_invoke (meta_handle ,
    meta_any,
    std::index_sequence< Index... >  
    )
    +
    + +

    Invokes a function given a list of erased parameters, if possible.

    +
    Template Parameters
    + + + + + +
    TypeReflected type to which the function is associated.
    CandidateThe actual function to invoke.
    PolicyOptional policy (no policy set by default).
    IndexIndexes to use to extract erased arguments from their list.
    +
    +
    +
    Returns
    A meta any containing the returned value, if any.
    + +

    Definition at line 320 of file utility.hpp.

    @@ -2499,12 +2715,12 @@ template<typename Type , auto Data>
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 160 of file utility.hpp.

    +

    Definition at line 159 of file utility.hpp.

    - -

    ◆ operator!=() [1/8]

    + +

    ◆ operator!=() [1/9]

    @@ -2534,7 +2750,7 @@ template<std::size_t Len, std::size_t Align>
    -inlinenoexcept +inline
    @@ -2556,20 +2772,17 @@ template<std::size_t Len, std::size_t Align>
    Returns
    True if the two wrappers differ in their content, false otherwise.
    -

    Definition at line 348 of file any.hpp.

    +

    Definition at line 368 of file any.hpp.

    - -

    ◆ operator!=() [2/8]

    + +

    ◆ operator!=() [2/9]

    template<typename Type , typename Other >
    - - - - - -
    @@ -2589,18 +2802,13 @@ template<typename Type , typename Other >
    bool entt::operator!=
    -
    -noexcept

    Compares two handles.

    Template Parameters
    - - + +
    TypeA valid entity type (see entt_traits for more details).
    OtherA valid entity type (see entt_traits for more details).
    TypeA valid entity type (see entt_traits for more details).
    OtherA valid entity type (see entt_traits for more details).
    @@ -2613,12 +2821,12 @@ template<typename Type , typename Other >
    Returns
    False if both handles refer to the same registry and the same entity, true otherwise.
    -

    Definition at line 317 of file handle.hpp.

    +

    Definition at line 329 of file handle.hpp.

    - -

    ◆ operator!=() [3/8]

    + +

    ◆ operator!=() [3/9]

    @@ -2648,7 +2856,7 @@ template<typename Char >
    -constexprnoexcept +constexpr
    @@ -2673,16 +2881,13 @@ template<typename Char >
    - -

    ◆ operator!=() [4/8]

    + +

    ◆ operator!=() [4/9]

    template<typename Ret , typename... Args>
    - - - - - -
    @@ -2702,11 +2907,6 @@ template<typename Ret , typename... Args>
    bool entt::operator!=
    -
    -noexcept

    Compares the contents of two delegates.

    @@ -2730,8 +2930,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ operator!=() [5/8]

    + +

    ◆ operator!=() [5/9]

    @@ -2744,13 +2944,13 @@ template<typename Entity >
    constexpr bool entt::operator!= ( - const Entity &  + const Entity  entity, - const null_t &  + const null_t  other  @@ -2761,7 +2961,7 @@ template<typename Entity >
    -constexprnoexcept +constexpr
    @@ -2782,12 +2982,68 @@ template<typename Entity >
    Returns
    True if the two elements differ, false otherwise.
    -

    Definition at line 171 of file entity.hpp.

    +

    Definition at line 232 of file entity.hpp.

    - -

    ◆ operator!=() [6/8]

    + +

    ◆ operator!=() [6/9]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr bool entt::operator!= (const Entity entity,
    const tombstone_t other 
    )
    +
    +constexpr
    +
    + +

    Compares a tombstone object and an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + + +
    entityEntity identifier with which to compare.
    otherA tombstone object yet to be converted.
    +
    +
    +
    Returns
    True if the two elements differ, false otherwise.
    + +

    Definition at line 323 of file entity.hpp.

    + +
    +
    + +

    ◆ operator!=() [7/9]

    @@ -2815,7 +3071,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -2823,19 +3079,19 @@ template<typename Entity >

    Checks if two wrappers differ in their content.

    Parameters
    - - + +
    lhsA meta any object, either empty or not.
    rhsA meta any object, either empty or not.
    lhsA wrapper, either empty or not.
    rhsA wrapper, either empty or not.
    Returns
    True if the two wrappers differ in their content, false otherwise.
    -

    Definition at line 576 of file meta.hpp.

    +

    Definition at line 588 of file meta.hpp.

    - -

    ◆ operator!=() [7/8]

    + +

    ◆ operator!=() [8/9]

    @@ -2863,7 +3119,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -2878,12 +3134,12 @@ template<typename Entity >
    Returns
    False if the objects refer to the same node, true otherwise.
    -

    Definition at line 1569 of file meta.hpp.

    +

    Definition at line 1600 of file meta.hpp.

    - -

    ◆ operator!=() [8/8]

    + +

    ◆ operator!=() [9/9]

    @@ -2911,7 +3167,7 @@ template<typename Entity >
    -inlinenoexcept +inline
    @@ -2930,8 +3186,8 @@ template<typename Entity >
    - -

    ◆ operator""_hs()

    + +

    ◆ operator""_hs()

    @@ -2959,7 +3215,7 @@ template<typename Entity >
    -constexprnoexcept +constexpr
    @@ -2977,8 +3233,8 @@ template<typename Entity >
    - -

    ◆ operator""_hws()

    + +

    ◆ operator""_hws()

    @@ -3006,7 +3262,7 @@ template<typename Entity >
    -constexprnoexcept +constexpr
    @@ -3070,7 +3326,7 @@ template<typename... Type, typename... Other>
    Returns
    A type list composed by the types of both the type lists.
    -

    Definition at line 180 of file type_traits.hpp.

    +

    Definition at line 181 of file type_traits.hpp.

    @@ -3120,12 +3376,12 @@ template<auto... Value, auto... Other>
    Returns
    A value list composed by the values of both the value lists.
    -

    Definition at line 376 of file type_traits.hpp.

    +

    Definition at line 377 of file type_traits.hpp.

    - -

    ◆ operator==()

    + +

    ◆ operator==() [1/2]

    @@ -3138,13 +3394,13 @@ template<typename Entity >
    constexpr bool entt::operator== ( - const Entity &  + const Entity  entity, - const null_t &  + const null_t  other  @@ -3155,7 +3411,7 @@ template<typename Entity >
    -constexprnoexcept +constexpr
    @@ -3176,7 +3432,63 @@ template<typename Entity >
    Returns
    False if the two elements differ, true otherwise.
    -

    Definition at line 158 of file entity.hpp.

    +

    Definition at line 219 of file entity.hpp.

    + + + + +

    ◆ operator==() [2/2]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr bool entt::operator== (const Entity entity,
    const tombstone_t other 
    )
    +
    +constexpr
    +
    + +

    Compares a tombstone object and an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + + +
    entityEntity identifier with which to compare.
    otherA tombstone object yet to be converted.
    +
    +
    +
    Returns
    False if the two elements differ, true otherwise.
    + +

    Definition at line 310 of file entity.hpp.

    @@ -3191,13 +3503,13 @@ template<typename Entity , typename... ELhs, typename... CLhs, typename... ER auto entt::operator| ( - const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &  + const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &  lhs, - const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &  + const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &  rhs  @@ -3211,7 +3523,7 @@ template<typename Entity , typename... ELhs, typename... CLhs, typename... ER

    Combines two views in a more specific one.

    Template Parameters
    - + @@ -3228,12 +3540,12 @@ template<typename Entity , typename... ELhs, typename... CLhs, typename... ER
    Returns
    A more specific view.
    -

    Definition at line 975 of file view.hpp.

    +

    Definition at line 1047 of file view.hpp.

    - -

    ◆ overload() [1/2]

    + +

    ◆ overload() [1/2]

    @@ -3253,7 +3565,7 @@ template<typename Func >
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    ELhsFilter list of the first view.
    CLhsComponent list of the first view.
    ERhsFilter list of the second view.
    -constexprnoexcept +constexpr
    @@ -3277,8 +3589,8 @@ template<typename Func >
    - -

    ◆ overload() [2/2]

    + +

    ◆ overload() [2/2]

    @@ -3298,7 +3610,7 @@ template<typename Type , typename Class >
    -constexprnoexcept +constexpr
    @@ -3401,8 +3713,8 @@ template<auto Member, typename Poly , typename... Args>
    - -

    ◆ resolve() [1/3]

    + +

    ◆ resolve() [1/3]

    @@ -3421,7 +3733,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -3442,8 +3754,8 @@ An iterable range to use to visit all meta types.
    - -

    ◆ resolve() [2/3]

    + +

    ◆ resolve() [2/3]

    @@ -3461,7 +3773,7 @@ An iterable range to use to visit all meta types. -inlinenoexcept +inline
    @@ -3479,8 +3791,8 @@ An iterable range to use to visit all meta types.
    - -

    ◆ resolve() [3/3]

    + +

    ◆ resolve() [3/3]

    @@ -3498,7 +3810,7 @@ An iterable range to use to visit all meta types. -inlinenoexcept +inline
    @@ -3516,16 +3828,13 @@ An iterable range to use to visit all meta types.
    - -

    ◆ sink()

    + +

    ◆ sink()

    template<typename Ret , typename... Args>
    - - - - - -
    @@ -3535,11 +3844,6 @@ template<typename Ret , typename... Args>
    entt::sink -> sink< Ret(Args...)>
    -
    -noexcept

    Deduction guide.

    @@ -3554,8 +3858,8 @@ template<typename Ret , typename... Args>
    - -

    ◆ to_entity()

    + +

    ◆ to_entity()

    @@ -3572,7 +3876,7 @@ template<typename Entity , typename Component >
    const Component &  - component  + instance  @@ -3583,9 +3887,10 @@ template<typename Entity , typename Component >

    Returns the entity associated with a given component.

    +
    Warning
    Currently, this function only works correctly with the default pool as it makes assumptions about how the components are laid out.
    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    ComponentType of component.
    @@ -3593,18 +3898,18 @@ template<typename Entity , typename Component >
    Parameters
    - +
    regA registry that contains the given entity and its components.
    componentA valid component instance.
    instanceA valid component instance.
    Returns
    The entity associated with the given component.
    -

    Definition at line 147 of file helper.hpp.

    +

    Definition at line 151 of file helper.hpp.

    - -

    ◆ to_integral()

    + +

    ◆ to_integral()

    @@ -3624,12 +3929,12 @@ template<typename Entity >
    -constexprnoexcept +constexpr
    -

    Converts an entity type to its underlying type.

    +

    Converts an entity to its underlying type.

    Template Parameters
    @@ -3644,20 +3949,17 @@ template<typename Entity >
    Returns
    The integral representation of the given value.
    -

    Definition at line 93 of file entity.hpp.

    +

    Definition at line 141 of file entity.hpp.

    - -

    ◆ type_id()

    + +

    ◆ type_id()

    template<typename Type >
    -
    EntityThe value type.
    - - - - -
    @@ -3666,11 +3968,6 @@ template<typename Type >
    type_info entt::type_id
    -
    -noexcept

    Returns the type info object for a given type.

    @@ -3717,7 +4014,7 @@ template<std::size_t N>
    -

    Definition at line 38 of file type_traits.hpp.

    +

    Definition at line 39 of file type_traits.hpp.

    @@ -3789,8 +4086,8 @@ template<typename... Type> - -

    ◆ is_applicable_r_v

    + +

    ◆ is_applicable_r_v

    @@ -3801,7 +4098,7 @@ template<typename Ret , typename Func , typename Args >
    - +
    constexpr auto entt::is_applicable_r_v = is_applicable_r<Ret, Func, Args>::valueconstexpr bool entt::is_applicable_r_v = is_applicable_r<Ret, Func, Args>::value
    @@ -3821,12 +4118,12 @@ template<typename Ret , typename Func , typename Args >
    -

    Definition at line 540 of file type_traits.hpp.

    +

    Definition at line 545 of file type_traits.hpp.

    - -

    ◆ is_applicable_v

    + +

    ◆ is_applicable_v

    @@ -3837,7 +4134,7 @@ template<typename Func , typename Args >
    - +
    constexpr auto entt::is_applicable_v = is_applicable<Func, Args>::valueconstexpr bool entt::is_applicable_v = is_applicable<Func, Args>::value
    @@ -3856,12 +4153,12 @@ template<typename Func , typename Args >
    -

    Definition at line 513 of file type_traits.hpp.

    +

    Definition at line 518 of file type_traits.hpp.

    - -

    ◆ is_complete_v

    + +

    ◆ is_complete_v

    @@ -3872,7 +4169,7 @@ template<typename Type >
    - +
    constexpr auto entt::is_complete_v = is_complete<Type>::valueconstexpr bool entt::is_complete_v = is_complete<Type>::value
    @@ -3885,51 +4182,17 @@ template<typename Type >

    Helper variable template.

    Template Parameters
    - +
    TypePotential complete type.
    TypeThe type to test.
    -

    Definition at line 562 of file type_traits.hpp.

    +

    Definition at line 567 of file type_traits.hpp.

    - -

    ◆ is_empty_v

    - -
    -
    -
    -template<typename Type >
    - - - - - -
    - - - - -
    constexpr auto entt::is_empty_v = is_empty<Type>::value
    -
    -inlineconstexpr
    -
    - -

    Helper variable template.

    -
    Template Parameters
    - - -
    TypePotential empty type.
    -
    -
    - -

    Definition at line 603 of file type_traits.hpp.

    - -
    -
    - -

    ◆ is_equality_comparable_v

    + +

    ◆ is_equality_comparable_v

    @@ -3940,7 +4203,7 @@ template<class Type >
    - +
    constexpr auto entt::is_equality_comparable_v = is_equality_comparable<Type>::valueconstexpr bool entt::is_equality_comparable_v = is_equality_comparable<Type>::value
    @@ -3953,12 +4216,81 @@ template<class Type >

    Helper variable template.

    Template Parameters
    - +
    TypePotentially equality comparable type.
    TypeThe type to test.
    -

    Definition at line 479 of file type_traits.hpp.

    +

    Definition at line 484 of file type_traits.hpp.

    + + + + +

    ◆ is_iterator_type_v

    + +
    +
    +
    +template<typename Type , typename It >
    + + + + + +
    + + + + +
    constexpr bool entt::is_iterator_type_v = is_iterator_type<Type, It>::value
    +
    +inlineconstexpr
    +
    + +

    Helper variable template.

    +
    Template Parameters
    + + + +
    TypeThe type to test.
    ItRequired iterator type.
    +
    +
    + +

    Definition at line 624 of file type_traits.hpp.

    + +
    +
    + +

    ◆ is_iterator_v

    + +
    +
    +
    +template<typename Type >
    + + + + + +
    + + + + +
    constexpr bool entt::is_iterator_v = is_iterator<Type>::value
    +
    +inlineconstexpr
    +
    + +

    Helper variable template.

    +
    Template Parameters
    + + +
    TypeThe type to test.
    +
    +
    + +

    Definition at line 591 of file type_traits.hpp.

    @@ -4028,40 +4360,6 @@ template<typename Type >

    Definition at line 82 of file type_traits.hpp.

    - - - -

    ◆ is_std_hashable_v

    - -
    -
    -
    -template<typename Type >
    - - - - - -
    - - - - -
    constexpr auto entt::is_std_hashable_v = is_std_hashable<Type>::value
    -
    -inlineconstexpr
    -
    - -

    Helper variable template.

    -
    Template Parameters
    - - -
    TypePotentially hashable type.
    -
    -
    - -

    Definition at line 586 of file type_traits.hpp.

    -
    @@ -4119,15 +4417,14 @@ template<id_type Value>

    Compile-time constant for null entities.

    -

    Internal details not to be documented.

    There exist implicit conversions from this variable to entity identifiers of any allowed type. Similarly, there exist comparision operators between the null entity and any other entity identifier.

    -

    Definition at line 189 of file entity.hpp.

    +

    Definition at line 335 of file entity.hpp.

    - -

    ◆ size_of_v

    + +

    ◆ size_of_v

    @@ -4138,7 +4435,7 @@ template<class Type >
    - +
    constexpr auto entt::size_of_v = size_of<Type>::valueconstexpr std::size_t entt::size_of_v = size_of<Type>::value
    @@ -4156,12 +4453,39 @@ template<class Type >
    -

    Definition at line 85 of file type_traits.hpp.

    +

    Definition at line 86 of file type_traits.hpp.

    - -

    ◆ type_list_contains_v

    + +

    ◆ tombstone

    + +
    +
    + + + + + +
    + + + + +
    constexpr tombstone_t entt::tombstone {}
    +
    +inlineconstexpr
    +
    + +

    Compile-time constant for tombstone entities.

    +

    There exist implicit conversions from this variable to entity identifiers of any allowed type. Similarly, there exist comparision operators between the tombstone entity and any other entity identifier.

    + +

    Definition at line 345 of file entity.hpp.

    + +
    +
    + +

    ◆ type_list_contains_v

    @@ -4172,7 +4496,7 @@ template<class List , typename Type >
    - +
    constexpr auto entt::type_list_contains_v = type_list_contains<List, Type>::valueconstexpr bool entt::type_list_contains_v = type_list_contains<List, Type>::value
    @@ -4191,7 +4515,7 @@ template<class List , typename Type >
    -

    Definition at line 290 of file type_traits.hpp.

    +

    Definition at line 291 of file type_traits.hpp.

    @@ -4225,7 +4549,7 @@ template<auto Value, typename > -

    Definition at line 103 of file type_traits.hpp.

    +

    Definition at line 104 of file type_traits.hpp.

    @@ -4260,14 +4584,14 @@ template<std::size_t Index, typename List > -

    Definition at line 366 of file type_traits.hpp.

    +

    Definition at line 367 of file type_traits.hpp.

    diff --git a/namespacemembers.html b/namespacemembers.html index 9246dd40c..7db8bc965 100644 --- a/namespacemembers.html +++ b/namespacemembers.html @@ -3,7 +3,7 @@ - + EnTT: Namespace Members @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -66,16 +66,16 @@ $(function() {

    - a -

    @@ -85,10 +85,10 @@ $(function() { : entt
  • basic_hashed_string() -: entt +: entt
  • basic_view() -: entt +: entt
  • @@ -120,7 +120,10 @@ $(function() {

    - d -

    +

    - f -

    + +

    - g -

    - m -

    -
    entt::is_std_hashable< Type, typename > Struct Template Reference
    +
    entt::is_iterator< Type, typename > Struct Template Reference
    -

    Provides the member constant value to true if a given type is hashable, false otherwise. - More...

    +

    Provides the member constant value to true if a given type is an iterator, false otherwise. + More...

    #include <type_traits.hpp>

    -Inheritance diagram for entt::is_std_hashable< Type, typename >:
    +Inheritance diagram for entt::is_iterator< Type, typename >:
    -
    Inheritance graph
    - - - +
    Inheritance graph
    + + +
    [legend]
    -Collaboration diagram for entt::is_std_hashable< Type, typename >:
    +Collaboration diagram for entt::is_iterator< Type, typename >:
    -
    Collaboration graph
    - - - +
    Collaboration graph
    + + +
    [legend]

    Detailed Description

    template<typename Type, typename = void>
    -struct entt::is_std_hashable< Type, typename >

    +struct entt::is_iterator< Type, typename > -

    Provides the member constant value to true if a given type is hashable, false otherwise.

    +

    Provides the member constant value to true if a given type is an iterator, false otherwise.

    Template Parameters
    - +
    TypePotentially hashable type.
    TypeThe type to test.
    -

    Definition at line 571 of file type_traits.hpp.

    +

    Definition at line 576 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.map b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.map new file mode 100644 index 000000000..6af8b6088 --- /dev/null +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.md5 b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.md5 new file mode 100644 index 000000000..24d3aa729 --- /dev/null +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.md5 @@ -0,0 +1 @@ +a9d40964562112d69c2d8342274f1638 \ No newline at end of file diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.png b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.png new file mode 100644 index 000000000..18c7b3a00 Binary files /dev/null and b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3698054260b67a27feb80b2d622a6698e.png differ diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3a2eb7dcc84dd5d3a13fb4848a9e1994c.html b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3a2eb7dcc84dd5d3a13fb4848a9e1994c.html new file mode 100644 index 000000000..7fcf78648 --- /dev/null +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3a2eb7dcc84dd5d3a13fb4848a9e1994c.html @@ -0,0 +1,118 @@ + + + + + + + +EnTT: entt::is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is an iterator, false otherwise. + More...

    + +

    #include <type_traits.hpp>

    +
    +Inheritance diagram for entt::is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type>
    +struct entt::is_iterator< Type, std::void_t< typename std::iterator_traits< Type >::iterator_category > >

    + +

    Provides the member constant value to true if a given type is an iterator, false otherwise.

    +
    Template Parameters
    + + +
    TypeThe type to test.
    +
    +
    + +

    Definition at line 581 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.map b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.map new file mode 100644 index 000000000..6af8b6088 --- /dev/null +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.md5 b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.md5 new file mode 100644 index 000000000..24d3aa729 --- /dev/null +++ b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.md5 @@ -0,0 +1 @@ +a9d40964562112d69c2d8342274f1638 \ No newline at end of file diff --git a/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.png b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.png new file mode 100644 index 000000000..18c7b3a00 Binary files /dev/null and b/structentt_1_1is__iterator_3_01Type_00_01std_1_1void__t_3_01typename_01std_1_1iterator__traits_3ac8322a9fff6c3f2a5ce0ee980056191.png differ diff --git a/structentt_1_1is__iterator__coll__graph.map b/structentt_1_1is__iterator__coll__graph.map new file mode 100644 index 000000000..30671fa76 --- /dev/null +++ b/structentt_1_1is__iterator__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__coll__graph.md5 b/structentt_1_1is__iterator__coll__graph.md5 new file mode 100644 index 000000000..0cef7a67e --- /dev/null +++ b/structentt_1_1is__iterator__coll__graph.md5 @@ -0,0 +1 @@ +ff1358d749cca1da456b6f6a5f176a9b \ No newline at end of file diff --git a/structentt_1_1is__iterator__coll__graph.png b/structentt_1_1is__iterator__coll__graph.png new file mode 100644 index 000000000..de12bd58a Binary files /dev/null and b/structentt_1_1is__iterator__coll__graph.png differ diff --git a/structentt_1_1is__iterator__inherit__graph.map b/structentt_1_1is__iterator__inherit__graph.map new file mode 100644 index 000000000..30671fa76 --- /dev/null +++ b/structentt_1_1is__iterator__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__inherit__graph.md5 b/structentt_1_1is__iterator__inherit__graph.md5 new file mode 100644 index 000000000..0cef7a67e --- /dev/null +++ b/structentt_1_1is__iterator__inherit__graph.md5 @@ -0,0 +1 @@ +ff1358d749cca1da456b6f6a5f176a9b \ No newline at end of file diff --git a/structentt_1_1is__iterator__inherit__graph.png b/structentt_1_1is__iterator__inherit__graph.png new file mode 100644 index 000000000..de12bd58a Binary files /dev/null and b/structentt_1_1is__iterator__inherit__graph.png differ diff --git a/structentt_1_1is__iterator__type.html b/structentt_1_1is__iterator__type.html new file mode 100644 index 000000000..d474be58f --- /dev/null +++ b/structentt_1_1is__iterator__type.html @@ -0,0 +1,119 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, typename > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, typename > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise. + More...

    + +

    #include <type_traits.hpp>

    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, typename >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, typename >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It, typename = void>
    +struct entt::is_iterator_type< Type, It, typename >

    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise.

    +
    Template Parameters
    + + + +
    TypeThe type to test.
    ItRequired iterator type.
    +
    +
    + +

    Definition at line 601 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.map new file mode 100644 index 000000000..5fa57b45a --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.md5 new file mode 100644 index 000000000..a2376b805 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.md5 @@ -0,0 +1 @@ +822008e03c303de22da3b5b12dad7117 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.png new file mode 100644 index 000000000..420b0cbcd Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_031f69181d810960d2d524985ac73e57.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.map new file mode 100644 index 000000000..122731f95 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.md5 new file mode 100644 index 000000000..9a690ee9d --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.md5 @@ -0,0 +1 @@ +c6443e058a984756ab4999f344370d0b \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.png new file mode 100644 index 000000000..737f06e08 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_0cf0f449659cd941c9b7095d998491ca.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.map new file mode 100644 index 000000000..4e2e775e8 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.md5 new file mode 100644 index 000000000..1a6d48a4e --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.md5 @@ -0,0 +1 @@ +c02dba02ccd591fe1b965cb01d2a4acb \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.png new file mode 100644 index 000000000..d41a0817a Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_14d66144982d0e21be9b9b4de50a6d14.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_1c6d668122d93a8a6f6186aab47dc295.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_1c6d668122d93a8a6f6186aab47dc295.html new file mode 100644 index 000000000..a40135895 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_1c6d668122d93a8a6f6186aab47dc295.html @@ -0,0 +1,119 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise. + More...

    + +

    #include <type_traits.hpp>

    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type > &&std::is_same_v< Type, It > > >

    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise.

    +
    Template Parameters
    + + + +
    TypeThe type to test.
    ItRequired iterator type.
    +
    +
    + +

    Definition at line 606 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.map new file mode 100644 index 000000000..122731f95 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.md5 new file mode 100644 index 000000000..9a690ee9d --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.md5 @@ -0,0 +1 @@ +c6443e058a984756ab4999f344370d0b \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.png new file mode 100644 index 000000000..737f06e08 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_4b06a1d897e0afedea8aff5e4ee38d26.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_60e4bfe63bf209845a6b0b7012600a43.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_60e4bfe63bf209845a6b0b7012600a43.html new file mode 100644 index 000000000..5f7f7ea10 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_60e4bfe63bf209845a6b0b7012600a43.html @@ -0,0 +1,108 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type >, std::void_t< typename It::iterator_type > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type >, std::void_t< typename It::iterator_type > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type >, std::void_t< typename It::iterator_type > > >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type >, std::void_t< typename It::iterator_type > > >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< Type >, std::void_t< typename It::iterator_type > > >

    + + +

    Definition at line 595 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.map new file mode 100644 index 000000000..4e2e775e8 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.md5 new file mode 100644 index 000000000..1a6d48a4e --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.md5 @@ -0,0 +1 @@ +c02dba02ccd591fe1b965cb01d2a4acb \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.png new file mode 100644 index 000000000..d41a0817a Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7d873c0f5413c720a318d9d71fe41bda.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.map new file mode 100644 index 000000000..5fa57b45a --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.md5 new file mode 100644 index 000000000..a2376b805 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.md5 @@ -0,0 +1 @@ +822008e03c303de22da3b5b12dad7117 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.png new file mode 100644 index 000000000..420b0cbcd Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_7e5694cadd672ca70748d20baeea7192.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_e2d3ae9ed2f1006636f40a060c229d28.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_e2d3ae9ed2f1006636f40a060c229d28.html new file mode 100644 index 000000000..10575fef4 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01is__iterator__v_e2d3ae9ed2f1006636f40a060c229d28.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< It > &&std::is_same_v< Type, It > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< It > &&std::is_same_v< Type, It > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< It > &&std::is_same_v< Type, It > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< It > &&std::is_same_v< Type, It > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::enable_if_t< is_iterator_v< It > &&std::is_same_v< Type, It > > >

    + + +

    Definition at line 589 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.map new file mode 100644 index 000000000..1c4b0b8bd --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.md5 new file mode 100644 index 000000000..f5386db3f --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.md5 @@ -0,0 +1 @@ +4f98ccea4c504545f9d64d081a64a4d4 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.png new file mode 100644 index 000000000..245c88db8 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_0807d9313c03fcef0ec8c2d421bad25e.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_a2cdb080568862978edcb41f1cbf3994.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_a2cdb080568862978edcb41f1cbf3994.html new file mode 100644 index 000000000..8bfe51c8d --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_a2cdb080568862978edcb41f1cbf3994.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::enable_if_t< std::is_same_v< Type, It > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::enable_if_t< std::is_same_v< Type, It > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::enable_if_t< std::is_same_v< Type, It > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::enable_if_t< std::is_same_v< Type, It > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::enable_if_t< std::is_same_v< Type, It > > >

    + + +

    Definition at line 576 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.map new file mode 100644 index 000000000..1c4b0b8bd --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.md5 new file mode 100644 index 000000000..f5386db3f --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.md5 @@ -0,0 +1 @@ +4f98ccea4c504545f9d64d081a64a4d4 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.png new file mode 100644 index 000000000..245c88db8 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_01std_1_1is__same_aa99023922940c14535d13761101a992.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.map new file mode 100644 index 000000000..cbb203ba6 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.md5 new file mode 100644 index 000000000..83eb7e06e --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.md5 @@ -0,0 +1 @@ +f7e531f0be03cac432db079e67dcba01 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.png new file mode 100644 index 000000000..b2a0e62a7 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__048f541c43b7c84f850c92e9a26a306d.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.map new file mode 100644 index 000000000..cbb203ba6 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.md5 new file mode 100644 index 000000000..83eb7e06e --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.md5 @@ -0,0 +1 @@ +f7e531f0be03cac432db079e67dcba01 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.png new file mode 100644 index 000000000..b2a0e62a7 Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__bee9daa326b73037a1a2303bda5e8f9e.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__d827a14c04f195b53a7b353d4f3d2a15.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__d827a14c04f195b53a7b353d4f3d2a15.html new file mode 100644 index 000000000..0a360e226 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1enable__if__t_3_9std_1_1is__same__d827a14c04f195b53a7b353d4f3d2a15.html @@ -0,0 +1,121 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise. + More...

    + +

    #include <type_traits.hpp>

    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::enable_if_t<!std::is_same_v< Type, It >, std::void_t< typename It::iterator_type > > >

    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise.

    +
    Template Parameters
    + + + +
    TypeThe type to test.
    ItRequired iterator type.
    +
    +
    + +

    Definition at line 613 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.map new file mode 100644 index 000000000..7d3878790 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.md5 new file mode 100644 index 000000000..27dba78f3 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.md5 @@ -0,0 +1 @@ +2b678b76c9e7098fb5537a29117e66de \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.png new file mode 100644 index 000000000..9732c05ab Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_0165fe10e0aee95e62b2aa02a8350623db.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_016c1061bfcda01e211d639a56616f87f8.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_016c1061bfcda01e211d639a56616f87f8.html new file mode 100644 index 000000000..1ed28980f --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_016c1061bfcda01e211d639a56616f87f8.html @@ -0,0 +1,108 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::void_t< decltype(typename It::iterator_type{})> > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::void_t< decltype(typename It::iterator_type{})> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::void_t< decltype(typename It::iterator_type{})> >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::void_t< decltype(typename It::iterator_type{})> >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::void_t< decltype(typename It::iterator_type{})> >

    + + +

    Definition at line 582 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.map new file mode 100644 index 000000000..7d3878790 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.md5 new file mode 100644 index 000000000..27dba78f3 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.md5 @@ -0,0 +1 @@ +2b678b76c9e7098fb5537a29117e66de \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.png new file mode 100644 index 000000000..9732c05ab Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01decltype_07typename_017248168c3347ec5b85272458804a937f.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.map new file mode 100644 index 000000000..ef10a79e0 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.md5 new file mode 100644 index 000000000..76c0db218 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.md5 @@ -0,0 +1 @@ +76db7a9f5e5c656bb9500f2b59271648 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.png new file mode 100644 index 000000000..6c8d9802c Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1itera3347c6291662314dfd4c0a25102f32db.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.map b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.map new file mode 100644 index 000000000..ef10a79e0 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.md5 b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.md5 new file mode 100644 index 000000000..76c0db218 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.md5 @@ -0,0 +1 @@ +76db7a9f5e5c656bb9500f2b59271648 \ No newline at end of file diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.png b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.png new file mode 100644 index 000000000..6c8d9802c Binary files /dev/null and b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iteraf0b2f247d9bcceeaa9bc1221cb3701f9.png differ diff --git a/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iterator__type_01_4_01_4.html b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iterator__type_01_4_01_4.html new file mode 100644 index 000000000..3e3a49c97 --- /dev/null +++ b/structentt_1_1is__iterator__type_3_01Type_00_01It_00_01std_1_1void__t_3_01typename_01It_1_1iterator__type_01_4_01_4.html @@ -0,0 +1,121 @@ + + + + + + + +EnTT: entt::is_iterator_type< Type, It, std::void_t< typename It::iterator_type > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_iterator_type< Type, It, std::void_t< typename It::iterator_type > > Struct Template Reference
    +
    +
    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise. + More...

    + +

    #include <type_traits.hpp>

    +
    +Inheritance diagram for entt::is_iterator_type< Type, It, std::void_t< typename It::iterator_type > >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_iterator_type< Type, It, std::void_t< typename It::iterator_type > >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, typename It>
    +struct entt::is_iterator_type< Type, It, std::void_t< typename It::iterator_type > >

    + +

    Provides the member constant value to true if a given type is of the required iterator type, false otherwise.

    +
    Template Parameters
    + + + +
    TypeThe type to test.
    ItRequired iterator type.
    +
    +
    + +

    Definition at line 613 of file type_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__iterator__type__coll__graph.map b/structentt_1_1is__iterator__type__coll__graph.map new file mode 100644 index 000000000..e365b8ce0 --- /dev/null +++ b/structentt_1_1is__iterator__type__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type__coll__graph.md5 b/structentt_1_1is__iterator__type__coll__graph.md5 new file mode 100644 index 000000000..455b6c517 --- /dev/null +++ b/structentt_1_1is__iterator__type__coll__graph.md5 @@ -0,0 +1 @@ +443295e889e0d31e1145341a68be220c \ No newline at end of file diff --git a/structentt_1_1is__iterator__type__coll__graph.png b/structentt_1_1is__iterator__type__coll__graph.png new file mode 100644 index 000000000..b781cc310 Binary files /dev/null and b/structentt_1_1is__iterator__type__coll__graph.png differ diff --git a/structentt_1_1is__iterator__type__inherit__graph.map b/structentt_1_1is__iterator__type__inherit__graph.map new file mode 100644 index 000000000..e365b8ce0 --- /dev/null +++ b/structentt_1_1is__iterator__type__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__iterator__type__inherit__graph.md5 b/structentt_1_1is__iterator__type__inherit__graph.md5 new file mode 100644 index 000000000..455b6c517 --- /dev/null +++ b/structentt_1_1is__iterator__type__inherit__graph.md5 @@ -0,0 +1 @@ +443295e889e0d31e1145341a68be220c \ No newline at end of file diff --git a/structentt_1_1is__iterator__type__inherit__graph.png b/structentt_1_1is__iterator__type__inherit__graph.png new file mode 100644 index 000000000..b781cc310 Binary files /dev/null and b/structentt_1_1is__iterator__type__inherit__graph.png differ diff --git a/structentt_1_1is__key__only__meta__associative__container.html b/structentt_1_1is__key__only__meta__associative__container.html index a64892e97..07016dce2 100644 --- a/structentt_1_1is__key__only__meta__associative__container.html +++ b/structentt_1_1is__key__only__meta__associative__container.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_key_only_meta_associative_container< typename, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_key_only_meta_associative_container< typename, typename >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_key_only_meta_associative_container< typename, typename >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -112,7 +112,7 @@ struct entt::is_key_only_meta_associative_container< typename, typename >< diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typen08c4aa5308e52cbb686af55767e67d40.html b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typen08c4aa5308e52cbb686af55767e67d40.html index 59ab82a75..388b791d5 100644 --- a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typen08c4aa5308e52cbb686af55767e67d40.html +++ b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typen08c4aa5308e52cbb686af55767e67d40.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_key_only_meta_associative_container< Type, std::void_t< typename meta_associative_container_traits< Type >::type::mapped_type > >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -112,7 +112,7 @@ struct entt::is_key_only_meta_associative_container< Type, std::void_t< ty diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.map b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.map index e26b123f5..ccf6e1a86 100644 --- a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.map +++ b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.md5 b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.md5 index 7c41f2868..ded7e1be9 100644 --- a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.md5 +++ b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.md5 @@ -1 +1 @@ -e6d292d12ff95db733bf31a798403ea5 \ No newline at end of file +3eeee954c83f13b44ab234672d11ca2c \ No newline at end of file diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.png b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.png index 79f4829d6..c79acee1c 100644 Binary files a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.png and b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenbdad25cccd7d7709fbf7cbfa40fba51a.png differ diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.map b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.map index e26b123f5..ccf6e1a86 100644 --- a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.map +++ b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.md5 b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.md5 index 7c41f2868..ded7e1be9 100644 --- a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.md5 +++ b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.md5 @@ -1 +1 @@ -e6d292d12ff95db733bf31a798403ea5 \ No newline at end of file +3eeee954c83f13b44ab234672d11ca2c \ No newline at end of file diff --git a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.png b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.png index 79f4829d6..c79acee1c 100644 Binary files a/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.png and b/structentt_1_1is__key__only__meta__associative__container_3_01Type_00_01std_1_1void__t_3_01typenc97f9870d0bb26073df955500f8866dd.png differ diff --git a/structentt_1_1is__key__only__meta__associative__container__coll__graph.map b/structentt_1_1is__key__only__meta__associative__container__coll__graph.map index fc312fe26..71aecd132 100644 --- a/structentt_1_1is__key__only__meta__associative__container__coll__graph.map +++ b/structentt_1_1is__key__only__meta__associative__container__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__key__only__meta__associative__container__coll__graph.md5 b/structentt_1_1is__key__only__meta__associative__container__coll__graph.md5 index 301cdaa2a..1f82b13a6 100644 --- a/structentt_1_1is__key__only__meta__associative__container__coll__graph.md5 +++ b/structentt_1_1is__key__only__meta__associative__container__coll__graph.md5 @@ -1 +1 @@ -c97d1155dd27003cc75ef93b84b27029 \ No newline at end of file +fe7815c156ec8fe366b1c29de6c73e0c \ No newline at end of file diff --git a/structentt_1_1is__key__only__meta__associative__container__coll__graph.png b/structentt_1_1is__key__only__meta__associative__container__coll__graph.png index 0b9c05cc1..449bc0d00 100644 Binary files a/structentt_1_1is__key__only__meta__associative__container__coll__graph.png and b/structentt_1_1is__key__only__meta__associative__container__coll__graph.png differ diff --git a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.map b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.map index fc312fe26..71aecd132 100644 --- a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.map +++ b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.md5 b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.md5 index 301cdaa2a..1f82b13a6 100644 --- a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.md5 +++ b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.md5 @@ -1 +1 @@ -c97d1155dd27003cc75ef93b84b27029 \ No newline at end of file +fe7815c156ec8fe366b1c29de6c73e0c \ No newline at end of file diff --git a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.png b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.png index 0b9c05cc1..449bc0d00 100644 Binary files a/structentt_1_1is__key__only__meta__associative__container__inherit__graph.png and b/structentt_1_1is__key__only__meta__associative__container__inherit__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like.html b/structentt_1_1is__meta__pointer__like.html index b84d0950d..b914f976c 100644 --- a/structentt_1_1is__meta__pointer__like.html +++ b/structentt_1_1is__meta__pointer__like.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_meta_pointer_like< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_meta_pointer_like< typename >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_meta_pointer_like< typename >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -112,7 +112,7 @@ struct entt::is_meta_pointer_like< typename > diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html index caf9d5c95..5827c720c 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_meta_pointer_like< Type * > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_meta_pointer_like< Type * >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_meta_pointer_like< Type * >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -112,7 +112,7 @@ struct entt::is_meta_pointer_like< Type * > diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map index 47f29e813..923aa2f79 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 index b84033ab5..568785d37 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.md5 @@ -1 +1 @@ -4e403e7b6a59556cd9dd7788ee01d6d4 \ No newline at end of file +87454d9b481a94eddeb7bfa38bdd0977 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png index 29fae0bee..6bc050722 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png and b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__coll__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.map index 47f29e813..923aa2f79 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 index b84033ab5..568785d37 100644 --- a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.md5 @@ -1 +1 @@ -4e403e7b6a59556cd9dd7788ee01d6d4 \ No newline at end of file +87454d9b481a94eddeb7bfa38bdd0977 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png index 29fae0bee..6bc050722 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png and b/structentt_1_1is__meta__pointer__like_3_01Type_01_5_01_4__inherit__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html new file mode 100644 index 000000000..079a9af03 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4.html @@ -0,0 +1,119 @@ + + + + + + + +EnTT: entt::is_meta_pointer_like< Type(*)[N]> Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_meta_pointer_like< Type(*)[N]> Struct Template Reference
    +
    +
    + +

    Partial specialization used to reject pointers to arrays. + More...

    + +

    #include <pointer.hpp>

    +
    +Inheritance diagram for entt::is_meta_pointer_like< Type(*)[N]>:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_meta_pointer_like< Type(*)[N]>:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Type, std::size_t N>
    +struct entt::is_meta_pointer_like< Type(*)[N]>

    + +

    Partial specialization used to reject pointers to arrays.

    +
    Template Parameters
    + + + +
    TypeType of elements of the array.
    NNumber of elements of the array.
    +
    +
    + +

    Definition at line 29 of file pointer.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map new file mode 100644 index 000000000..7c556d7d1 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 new file mode 100644 index 000000000..97565e4bf --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.md5 @@ -0,0 +1 @@ +0ac5afc00fbf1b4c7922b606b36d658a \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.png new file mode 100644 index 000000000..cf1ce3752 Binary files /dev/null and b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__coll__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.map new file mode 100644 index 000000000..7c556d7d1 --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 new file mode 100644 index 000000000..97565e4bf --- /dev/null +++ b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.md5 @@ -0,0 +1 @@ +0ac5afc00fbf1b4c7922b606b36d658a \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.png new file mode 100644 index 000000000..cf1ce3752 Binary files /dev/null and b/structentt_1_1is__meta__pointer__like_3_01Type_07_5_08_0fN_0e_4__inherit__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html index ec0c638d7..46a510bd9 100644 --- a/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01const_01Type_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_meta_pointer_like< const Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::is_meta_pointer_like< const Type >:
    Inheritance graph
    - + @@ -89,7 +89,7 @@ Inheritance diagram for entt::is_meta_pointer_like< const Type >:
    Collaboration diagram for entt::is_meta_pointer_like< const Type >:
    Collaboration graph
    - + @@ -114,7 +114,7 @@ struct entt::is_meta_pointer_like< const Type >
    diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html index 83fdd2e86..6c79a86bb 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_meta_pointer_like< std::shared_ptr< Type > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_meta_pointer_like< std::shared_ptr< Type > >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_meta_pointer_like< std::shared_ptr< Type > >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -105,14 +105,14 @@ struct entt::is_meta_pointer_like< std::shared_ptr< Type > > -

    Definition at line 29 of file pointer.hpp.

    +

    Definition at line 40 of file pointer.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map index da3c508c4..33942bed5 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 index ac2932e0a..48694cbfa 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -5489d4adbf3a64ef2b9413a70f274784 \ No newline at end of file +d7672d3348e2cf1b1d456d61a90d025c \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png index 00ede5b5b..3b2d880ed 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png and b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map index da3c508c4..33942bed5 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 index ac2932e0a..48694cbfa 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -5489d4adbf3a64ef2b9413a70f274784 \ No newline at end of file +d7672d3348e2cf1b1d456d61a90d025c \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png index 00ede5b5b..3b2d880ed 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png and b/structentt_1_1is__meta__pointer__like_3_01std_1_1shared__ptr_3_01Type_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html index 0110acadc..58130f42b 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,18 +79,18 @@ $(function() { Inheritance diagram for entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > >:
    Collaboration graph
    - + - +
    [legend]

    Detailed Description

    @@ -106,14 +106,14 @@ struct entt::is_meta_pointer_like< std::unique_ptr< Type, Args... > > -

    Definition at line 41 of file pointer.hpp.

    +

    Definition at line 52 of file pointer.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map index b195d27e8..21563fec4 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 2b53726ff..a6f8d6049 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -f32d9134cefad3d598819f30caeef00f \ No newline at end of file +a2929207028d7111799671d025a8a0c4 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png index fc20345a8..417599555 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png and b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index b195d27e8..21563fec4 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 2b53726ff..a6f8d6049 100644 --- a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -f32d9134cefad3d598819f30caeef00f \ No newline at end of file +a2929207028d7111799671d025a8a0c4 \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index fc20345a8..417599555 100644 Binary files a/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png and b/structentt_1_1is__meta__pointer__like_3_01std_1_1unique__ptr_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.map b/structentt_1_1is__meta__pointer__like__coll__graph.map index c541d67f0..8000643b8 100644 --- a/structentt_1_1is__meta__pointer__like__coll__graph.map +++ b/structentt_1_1is__meta__pointer__like__coll__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.md5 b/structentt_1_1is__meta__pointer__like__coll__graph.md5 index 147e57457..739edca46 100644 --- a/structentt_1_1is__meta__pointer__like__coll__graph.md5 +++ b/structentt_1_1is__meta__pointer__like__coll__graph.md5 @@ -1 +1 @@ -6486fdcb548219e50bff2d85510df5d4 \ No newline at end of file +4c9b39af8eb6df3a2de48bbe2200f87d \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like__coll__graph.png b/structentt_1_1is__meta__pointer__like__coll__graph.png index fea88e42c..cb730a1ea 100644 Binary files a/structentt_1_1is__meta__pointer__like__coll__graph.png and b/structentt_1_1is__meta__pointer__like__coll__graph.png differ diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.map b/structentt_1_1is__meta__pointer__like__inherit__graph.map index c541d67f0..8000643b8 100644 --- a/structentt_1_1is__meta__pointer__like__inherit__graph.map +++ b/structentt_1_1is__meta__pointer__like__inherit__graph.map @@ -1,4 +1,4 @@ - + diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.md5 b/structentt_1_1is__meta__pointer__like__inherit__graph.md5 index 147e57457..739edca46 100644 --- a/structentt_1_1is__meta__pointer__like__inherit__graph.md5 +++ b/structentt_1_1is__meta__pointer__like__inherit__graph.md5 @@ -1 +1 @@ -6486fdcb548219e50bff2d85510df5d4 \ No newline at end of file +4c9b39af8eb6df3a2de48bbe2200f87d \ No newline at end of file diff --git a/structentt_1_1is__meta__pointer__like__inherit__graph.png b/structentt_1_1is__meta__pointer__like__inherit__graph.png index fea88e42c..cb730a1ea 100644 Binary files a/structentt_1_1is__meta__pointer__like__inherit__graph.png and b/structentt_1_1is__meta__pointer__like__inherit__graph.png differ diff --git a/structentt_1_1is__pop__policy.html b/structentt_1_1is__pop__policy.html new file mode 100644 index 000000000..68241d1d7 --- /dev/null +++ b/structentt_1_1is__pop__policy.html @@ -0,0 +1,118 @@ + + + + + + + +EnTT: entt::is_pop_policy< Policy > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_pop_policy< Policy > Struct Template Reference
    +
    +
    + +

    Tests whether a class represents a deletion policy. + More...

    + +

    #include <sparse_set.hpp>

    +
    +Inheritance diagram for entt::is_pop_policy< Policy >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_pop_policy< Policy >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Policy>
    +struct entt::is_pop_policy< Policy >

    + +

    Tests whether a class represents a deletion policy.

    +
    Template Parameters
    + + +
    PolicyA possibly valid deletion policy.
    +
    +
    + +

    Definition at line 59 of file sparse_set.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__pop__policy__coll__graph.map b/structentt_1_1is__pop__policy__coll__graph.map new file mode 100644 index 000000000..9920bb26c --- /dev/null +++ b/structentt_1_1is__pop__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__pop__policy__coll__graph.md5 b/structentt_1_1is__pop__policy__coll__graph.md5 new file mode 100644 index 000000000..8a43e102a --- /dev/null +++ b/structentt_1_1is__pop__policy__coll__graph.md5 @@ -0,0 +1 @@ +9037af1413503c5f64c5cf08b31f6c5f \ No newline at end of file diff --git a/structentt_1_1is__pop__policy__coll__graph.png b/structentt_1_1is__pop__policy__coll__graph.png new file mode 100644 index 000000000..42e8bffba Binary files /dev/null and b/structentt_1_1is__pop__policy__coll__graph.png differ diff --git a/structentt_1_1is__pop__policy__inherit__graph.map b/structentt_1_1is__pop__policy__inherit__graph.map new file mode 100644 index 000000000..9920bb26c --- /dev/null +++ b/structentt_1_1is__pop__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__pop__policy__inherit__graph.md5 b/structentt_1_1is__pop__policy__inherit__graph.md5 new file mode 100644 index 000000000..8a43e102a --- /dev/null +++ b/structentt_1_1is__pop__policy__inherit__graph.md5 @@ -0,0 +1 @@ +9037af1413503c5f64c5cf08b31f6c5f \ No newline at end of file diff --git a/structentt_1_1is__pop__policy__inherit__graph.png b/structentt_1_1is__pop__policy__inherit__graph.png new file mode 100644 index 000000000..42e8bffba Binary files /dev/null and b/structentt_1_1is__pop__policy__inherit__graph.png differ diff --git a/structentt_1_1is__sparse__set__iterator.html b/structentt_1_1is__sparse__set__iterator.html new file mode 100644 index 000000000..145209fd5 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: entt::is_sparse_set_iterator< typename, typename, typename > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_sparse_set_iterator< typename, typename, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_sparse_set_iterator< typename, typename, typename >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_sparse_set_iterator< typename, typename, typename >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename, typename, typename = void>
    +struct entt::is_sparse_set_iterator< typename, typename, typename >

    + + +

    Definition at line 870 of file sparse_set.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.map b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.map new file mode 100644 index 000000000..5dfc6b38f --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.md5 b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.md5 new file mode 100644 index 000000000..011b45212 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.md5 @@ -0,0 +1 @@ +dbd68825c564603d89ea4a51f75182ab \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.png b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.png new file mode 100644 index 000000000..3fa9e6ebd Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_011a69dbb95182c1b5abd923b7317aa4e5.png differ diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_0147711bef366c5f438dcd71a44be35bc4.html b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_0147711bef366c5f438dcd71a44be35bc4.html new file mode 100644 index 000000000..0cec9bd6e --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_0147711bef366c5f438dcd71a44be35bc4.html @@ -0,0 +1,108 @@ + + + + + + + +EnTT: entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::void_t< decltype(typename It::iterator_type{})> > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::void_t< decltype(typename It::iterator_type{})> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::void_t< decltype(typename It::iterator_type{})> >:
    +
    +
    Inheritance graph
    + + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::void_t< decltype(typename It::iterator_type{})> >:
    +
    +
    Collaboration graph
    + + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename... Args, typename It>
    +struct entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::void_t< decltype(typename It::iterator_type{})> >

    + + +

    Definition at line 882 of file sparse_set.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_014f0e0b28f1e5e3f5fbd955624149d3a8.html b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_014f0e0b28f1e5e3f5fbd955624149d3a8.html new file mode 100644 index 000000000..7d76de03c --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_014f0e0b28f1e5e3f5fbd955624149d3a8.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::enable_if_t< std::is_same_v< typename basic_sparse_set< Args... >::iterator, It > > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::enable_if_t< std::is_same_v< typename basic_sparse_set< Args... >::iterator, It > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::enable_if_t< std::is_same_v< typename basic_sparse_set< Args... >::iterator, It > > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::enable_if_t< std::is_same_v< typename basic_sparse_set< Args... >::iterator, It > > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename... Args, typename It>
    +struct entt::is_sparse_set_iterator< basic_sparse_set< Args... >, It, std::enable_if_t< std::is_same_v< typename basic_sparse_set< Args... >::iterator, It > > >

    + + +

    Definition at line 876 of file sparse_set.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.map b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.map new file mode 100644 index 000000000..5dfc6b38f --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.md5 b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.md5 new file mode 100644 index 000000000..011b45212 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.md5 @@ -0,0 +1 @@ +dbd68825c564603d89ea4a51f75182ab \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.png b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.png new file mode 100644 index 000000000..3fa9e6ebd Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01771aa75bbdcfbd5f775584fd1f223380.png differ diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.map b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.map new file mode 100644 index 000000000..510981e6e --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.md5 b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.md5 new file mode 100644 index 000000000..0114cb052 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.md5 @@ -0,0 +1 @@ +051d4f092bf7517a877e43d92907df38 \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.png b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.png new file mode 100644 index 000000000..80d251d4c Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01b9d26073825c37bfbb6f4617f719b87e.png differ diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.map b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.map new file mode 100644 index 000000000..510981e6e --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.map @@ -0,0 +1,5 @@ + + + + + diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.md5 b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.md5 new file mode 100644 index 000000000..0114cb052 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.md5 @@ -0,0 +1 @@ +051d4f092bf7517a877e43d92907df38 \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.png b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.png new file mode 100644 index 000000000..80d251d4c Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator_3_01basic__sparse__set_3_01Args_8_8_8_01_4_00_01It_00_01e12ef78345339bc2fa76cf3dcda76bea.png differ diff --git a/structentt_1_1is__sparse__set__iterator__coll__graph.map b/structentt_1_1is__sparse__set__iterator__coll__graph.map new file mode 100644 index 000000000..968669f0e --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__sparse__set__iterator__coll__graph.md5 b/structentt_1_1is__sparse__set__iterator__coll__graph.md5 new file mode 100644 index 000000000..67317add0 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator__coll__graph.md5 @@ -0,0 +1 @@ +79121664f9a772655a9d6e7cfe4348be \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator__coll__graph.png b/structentt_1_1is__sparse__set__iterator__coll__graph.png new file mode 100644 index 000000000..a0aac029b Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator__coll__graph.png differ diff --git a/structentt_1_1is__sparse__set__iterator__inherit__graph.map b/structentt_1_1is__sparse__set__iterator__inherit__graph.map new file mode 100644 index 000000000..968669f0e --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__sparse__set__iterator__inherit__graph.md5 b/structentt_1_1is__sparse__set__iterator__inherit__graph.md5 new file mode 100644 index 000000000..67317add0 --- /dev/null +++ b/structentt_1_1is__sparse__set__iterator__inherit__graph.md5 @@ -0,0 +1 @@ +79121664f9a772655a9d6e7cfe4348be \ No newline at end of file diff --git a/structentt_1_1is__sparse__set__iterator__inherit__graph.png b/structentt_1_1is__sparse__set__iterator__inherit__graph.png new file mode 100644 index 000000000..a0aac029b Binary files /dev/null and b/structentt_1_1is__sparse__set__iterator__inherit__graph.png differ diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v2db25a6fc70291b2836fc8dfe05b5c23.html b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v2db25a6fc70291b2836fc8dfe05b5c23.html deleted file mode 100644 index 4cba567a5..000000000 --- a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v2db25a6fc70291b2836fc8dfe05b5c23.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -EnTT: entt::is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > > Struct Template Reference - - - - - - - - - -
    -
    - - - - - - -
    -
    EnTT -  3.7.0 -
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    entt::is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > > Struct Template Reference
    -
    -
    - -

    Provides the member constant value to true if a given type is hashable, false otherwise. - More...

    - -

    #include <type_traits.hpp>

    -
    -Inheritance diagram for entt::is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > >:
    -
    -
    Inheritance graph
    - - - - -
    [legend]
    -
    -Collaboration diagram for entt::is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > >:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    -

    Detailed Description

    -

    template<typename Type>
    -struct entt::is_std_hashable< Type, std::enable_if_t< std::is_convertible_v< decltype(std::declval< std::hash< Type >>()(std::declval< Type >())), std::size_t > > >

    - -

    Provides the member constant value to true if a given type is hashable, false otherwise.

    -
    Template Parameters
    - - -
    TypePotentially hashable type.
    -
    -
    - -

    Definition at line 576 of file type_traits.hpp.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.map b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.map deleted file mode 100644 index f1af2f759..000000000 --- a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.md5 b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.md5 deleted file mode 100644 index 8fcaf6d2f..000000000 --- a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.md5 +++ /dev/null @@ -1 +0,0 @@ -92f2283344dc763a0dd41592ef7c2400 \ No newline at end of file diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.png b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.png deleted file mode 100644 index 01eb49e3d..000000000 Binary files a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v6ca81fa4260898efd77612183d426265.png and /dev/null differ diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.map b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.map deleted file mode 100644 index f1af2f759..000000000 --- a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.md5 b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.md5 deleted file mode 100644 index 8fcaf6d2f..000000000 --- a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.md5 +++ /dev/null @@ -1 +0,0 @@ -92f2283344dc763a0dd41592ef7c2400 \ No newline at end of file diff --git a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.png b/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.png deleted file mode 100644 index 01eb49e3d..000000000 Binary files a/structentt_1_1is__std__hashable_3_01Type_00_01std_1_1enable__if__t_3_01std_1_1is__convertible__v9d4520ac195e0110f6230c2cdd35901d.png and /dev/null differ diff --git a/structentt_1_1is__std__hashable__coll__graph.map b/structentt_1_1is__std__hashable__coll__graph.map deleted file mode 100644 index ea28c9ee9..000000000 --- a/structentt_1_1is__std__hashable__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/structentt_1_1is__std__hashable__coll__graph.md5 b/structentt_1_1is__std__hashable__coll__graph.md5 deleted file mode 100644 index ca87f9e7b..000000000 --- a/structentt_1_1is__std__hashable__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6a6ac550408066b333b861262f538598 \ No newline at end of file diff --git a/structentt_1_1is__std__hashable__coll__graph.png b/structentt_1_1is__std__hashable__coll__graph.png deleted file mode 100644 index 65f3e9c19..000000000 Binary files a/structentt_1_1is__std__hashable__coll__graph.png and /dev/null differ diff --git a/structentt_1_1is__std__hashable__inherit__graph.map b/structentt_1_1is__std__hashable__inherit__graph.map deleted file mode 100644 index ea28c9ee9..000000000 --- a/structentt_1_1is__std__hashable__inherit__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/structentt_1_1is__std__hashable__inherit__graph.md5 b/structentt_1_1is__std__hashable__inherit__graph.md5 deleted file mode 100644 index ca87f9e7b..000000000 --- a/structentt_1_1is__std__hashable__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6a6ac550408066b333b861262f538598 \ No newline at end of file diff --git a/structentt_1_1is__std__hashable__inherit__graph.png b/structentt_1_1is__std__hashable__inherit__graph.png deleted file mode 100644 index 65f3e9c19..000000000 Binary files a/structentt_1_1is__std__hashable__inherit__graph.png and /dev/null differ diff --git a/structentt_1_1is__storage__policy.html b/structentt_1_1is__storage__policy.html new file mode 100644 index 000000000..a996f9442 --- /dev/null +++ b/structentt_1_1is__storage__policy.html @@ -0,0 +1,118 @@ + + + + + + + +EnTT: entt::is_storage_policy< Policy > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::is_storage_policy< Policy > Struct Template Reference
    +
    +
    + +

    Tests whether a class represents a storage policy. + More...

    + +

    #include <policy.hpp>

    +
    +Inheritance diagram for entt::is_storage_policy< Policy >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::is_storage_policy< Policy >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename Policy>
    +struct entt::is_storage_policy< Policy >

    + +

    Tests whether a class represents a storage policy.

    +
    Template Parameters
    + + +
    PolicyA possibly valid storage policy.
    +
    +
    + +

    Definition at line 51 of file policy.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1is__storage__policy__coll__graph.map b/structentt_1_1is__storage__policy__coll__graph.map new file mode 100644 index 000000000..75aa6b059 --- /dev/null +++ b/structentt_1_1is__storage__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__storage__policy__coll__graph.md5 b/structentt_1_1is__storage__policy__coll__graph.md5 new file mode 100644 index 000000000..7c26b44ee --- /dev/null +++ b/structentt_1_1is__storage__policy__coll__graph.md5 @@ -0,0 +1 @@ +ca9f22cce1430ac8ea4e1c928b8ded83 \ No newline at end of file diff --git a/structentt_1_1is__storage__policy__coll__graph.png b/structentt_1_1is__storage__policy__coll__graph.png new file mode 100644 index 000000000..7a0bd287a Binary files /dev/null and b/structentt_1_1is__storage__policy__coll__graph.png differ diff --git a/structentt_1_1is__storage__policy__inherit__graph.map b/structentt_1_1is__storage__policy__inherit__graph.map new file mode 100644 index 000000000..75aa6b059 --- /dev/null +++ b/structentt_1_1is__storage__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1is__storage__policy__inherit__graph.md5 b/structentt_1_1is__storage__policy__inherit__graph.md5 new file mode 100644 index 000000000..7c26b44ee --- /dev/null +++ b/structentt_1_1is__storage__policy__inherit__graph.md5 @@ -0,0 +1 @@ +ca9f22cce1430ac8ea4e1c928b8ded83 \ No newline at end of file diff --git a/structentt_1_1is__storage__policy__inherit__graph.png b/structentt_1_1is__storage__policy__inherit__graph.png new file mode 100644 index 000000000..7a0bd287a Binary files /dev/null and b/structentt_1_1is__storage__policy__inherit__graph.png differ diff --git a/structentt_1_1matcher.html b/structentt_1_1matcher.html index f89dd3c0b..76c9d8734 100644 --- a/structentt_1_1matcher.html +++ b/structentt_1_1matcher.html @@ -3,7 +3,7 @@ - + EnTT: entt::matcher<... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -88,7 +88,7 @@ struct entt::matcher<... > diff --git a/structentt_1_1meta__associative__container__traits.html b/structentt_1_1meta__associative__container__traits.html index b96c2fc4b..acce8d905 100644 --- a/structentt_1_1meta__associative__container__traits.html +++ b/structentt_1_1meta__associative__container__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container_traits< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,7 +86,7 @@ struct entt::meta_associative_container_traits< typename > diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4-members.html index 07ac76204..3d96d6d3e 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_associative_container_traits< std::map< Key, Value, Args... > >, including all inherited members.

    - - - - - + + + + +
    begin(std::map< Key, Value, Args... > &cont)entt::basic_container< std::map< Key, Value, Args... > >inlinestatic
    cbegin(const std::map< Key, Value, Args... > &cont)entt::basic_container< std::map< Key, Value, Args... > >inlinestatic
    cend(const std::map< Key, Value, Args... > &cont)entt::basic_container< std::map< Key, Value, Args... > >inlinestatic
    end(std::map< Key, Value, Args... > &cont)entt::basic_container< std::map< Key, Value, Args... > >inlinestatic
    size(const std::map< Key, Value, Args... > &cont) noexceptentt::basic_container< std::map< Key, Value, Args... > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::map< Key, Value, Args... >, basic_container, basic_associative_container, basic_dynamic_container, basic_dynamic_associative_container, dynamic_associative_key_value_container >
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html index e97dfd26f..845e5f1b4 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container_traits< std::map< Key, Value, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_associative_container_traits< std::map< Key, Value, Args... > >:
    Inheritance graph
    - - - - + + + +
    [legend]
    Collaboration diagram for entt::meta_associative_container_traits< std::map< Key, Value, Args... > >:
    Collaboration graph
    - - - - + + + +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::map< Key, Value, Args... >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::map< Key, Value, Args... > >
    static Container::size_type size (const std::map< Key, Value, Args... > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::map< Key, Value, Args... > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::map< Key, Value, Args... > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::map< Key, Value, Args... > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::map< Key, Value, Args... > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -143,7 +143,7 @@ struct entt::meta_associative_container_traits< std::map< Key, Value, Args diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.map index 680182497..d0e85ffdf 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 0054b06ca..344a88c2c 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -42465b0d2dded99ec38109d78506848e \ No newline at end of file +e565fd986255084aa5ba01fcb737f003 \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.png index 8fa3e400a..5b5a458db 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index 680182497..d0e85ffdf 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 0054b06ca..344a88c2c 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -42465b0d2dded99ec38109d78506848e \ No newline at end of file +e565fd986255084aa5ba01fcb737f003 \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index 8fa3e400a..5b5a458db 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html index cd2fc6f62..f1eb58062 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_associative_container_traits< std::set< Key, Args... > >, including all inherited members.

    - - - - - + + + + +
    begin(std::set< Key, Args... > &cont)entt::basic_container< std::set< Key, Args... > >inlinestatic
    cbegin(const std::set< Key, Args... > &cont)entt::basic_container< std::set< Key, Args... > >inlinestatic
    cend(const std::set< Key, Args... > &cont)entt::basic_container< std::set< Key, Args... > >inlinestatic
    end(std::set< Key, Args... > &cont)entt::basic_container< std::set< Key, Args... > >inlinestatic
    size(const std::set< Key, Args... > &cont) noexceptentt::basic_container< std::set< Key, Args... > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::set< Key, Args... >, basic_container, basic_associative_container, basic_dynamic_container, basic_dynamic_associative_container, dynamic_associative_key_only_container >
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4.html index 03359b4e5..0cdd0f679 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container_traits< std::set< Key, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_associative_container_traits< std::set< Key, Args... > >:
    Inheritance graph
    - - - - + + + +
    [legend]
    Collaboration diagram for entt::meta_associative_container_traits< std::set< Key, Args... > >:
    Collaboration graph
    - - - - + + + +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::set< Key, Args... >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::set< Key, Args... > >
    static Container::size_type size (const std::set< Key, Args... > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::set< Key, Args... > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::set< Key, Args... > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::set< Key, Args... > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::set< Key, Args... > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -142,7 +142,7 @@ struct entt::meta_associative_container_traits< std::set< Key, Args... > diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map index 48b3f63f6..919fee217 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index fe88095a3..9797a7064 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -602def2d2fc0484b8b9803fad16a3613 \ No newline at end of file +bca4d77f081a576cf88818e1987641c1 \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png index d2d1276cf..eabcb871c 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index 48b3f63f6..919fee217 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index fe88095a3..9797a7064 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -602def2d2fc0484b8b9803fad16a3613 \ No newline at end of file +bca4d77f081a576cf88818e1987641c1 \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index d2d1276cf..eabcb871c 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html index 6609bcd71..b9eb34082 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container_traits< std::unordered_map< Key, Value, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_associative_container_traits< std::unordered_map< Key, Value, Args... > >:
    Inheritance graph
    - - - - + + + +
    [legend]
    Collaboration diagram for entt::meta_associative_container_traits< std::unordered_map< Key, Value, Args... > >:
    Collaboration graph
    - - - - + + + +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::unordered_map< Key, Value, Args... >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::unordered_map< Key, Value, Args... > >
    static Container::size_type size (const std::unordered_map< Key, Value, Args... > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::unordered_map< Key, Value, Args... > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::unordered_map< Key, Value, Args... > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::unordered_map< Key, Value, Args... > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::unordered_map< Key, Value, Args... > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -143,7 +143,7 @@ struct entt::meta_associative_container_traits< std::unordered_map< Key, V diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.map index e18f35cd2..9a2dc342e 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.md5 index 9f5645f47..e9f846e58 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.md5 @@ -1 +1 @@ -3b75e315a2e165eb1a67aefc39761523 \ No newline at end of file +d726c64a8f2e257248c4d9781d9d2f9e \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.png index 21dac3a3a..c4f6cb950 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_033913c4c96a906b9961af2e863d5a13.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_0d5e7b31e841a4cf619ecf4634e302d9.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_0d5e7b31e841a4cf619ecf4634e302d9.html index 572ef0a15..26d689cfa 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_0d5e7b31e841a4cf619ecf4634e302d9.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_0d5e7b31e841a4cf619ecf4634e302d9.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_associative_container_traits< std::unordered_map< Key, Value, Args... > >, including all inherited members.

    - - - - - + + + + +
    begin(std::unordered_map< Key, Value, Args... > &cont)entt::basic_container< std::unordered_map< Key, Value, Args... > >inlinestatic
    cbegin(const std::unordered_map< Key, Value, Args... > &cont)entt::basic_container< std::unordered_map< Key, Value, Args... > >inlinestatic
    cend(const std::unordered_map< Key, Value, Args... > &cont)entt::basic_container< std::unordered_map< Key, Value, Args... > >inlinestatic
    end(std::unordered_map< Key, Value, Args... > &cont)entt::basic_container< std::unordered_map< Key, Value, Args... > >inlinestatic
    size(const std::unordered_map< Key, Value, Args... > &cont) noexceptentt::basic_container< std::unordered_map< Key, Value, Args... > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::unordered_map< Key, Value, Args... >, basic_container, basic_associative_container, basic_dynamic_container, basic_dynamic_associative_container, dynamic_associative_key_value_container >
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.map index e18f35cd2..9a2dc342e 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.md5 index 9f5645f47..e9f846e58 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.md5 @@ -1 +1 @@ -3b75e315a2e165eb1a67aefc39761523 \ No newline at end of file +d726c64a8f2e257248c4d9781d9d2f9e \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.png index 21dac3a3a..c4f6cb950 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__map_3_01Key_00_01Value_31b011cbf00475ab196c86bccfb75f96.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html index f538e8550..efaf3369a 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_associative_container_traits< std::unordered_set< Key, Args... > >, including all inherited members.

    - - - - - + + + + +
    begin(std::unordered_set< Key, Args... > &cont)entt::basic_container< std::unordered_set< Key, Args... > >inlinestatic
    cbegin(const std::unordered_set< Key, Args... > &cont)entt::basic_container< std::unordered_set< Key, Args... > >inlinestatic
    cend(const std::unordered_set< Key, Args... > &cont)entt::basic_container< std::unordered_set< Key, Args... > >inlinestatic
    end(std::unordered_set< Key, Args... > &cont)entt::basic_container< std::unordered_set< Key, Args... > >inlinestatic
    size(const std::unordered_set< Key, Args... > &cont) noexceptentt::basic_container< std::unordered_set< Key, Args... > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::unordered_set< Key, Args... >, basic_container, basic_associative_container, basic_dynamic_container, basic_dynamic_associative_container, dynamic_associative_key_only_container >
    diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4.html index 0786f592a..4246c98bb 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_associative_container_traits< std::unordered_set< Key, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_associative_container_traits< std::unordered_set< Key, Args... > >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::meta_associative_container_traits< std::unordered_set< Key, Args... > >:
    Collaboration graph
    - + - +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::unordered_set< Key, Args... >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::unordered_set< Key, Args... > >
    static Container::size_type size (const std::unordered_set< Key, Args... > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::unordered_set< Key, Args... > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::unordered_set< Key, Args... > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::unordered_set< Key, Args... > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::unordered_set< Key, Args... > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -142,7 +142,7 @@ struct entt::meta_associative_container_traits< std::unordered_set< Key, A diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map index 47d75c37f..f860402bf 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index 2170ed356..353560c68 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -ad5ba08c8521da06825699283ed05346 \ No newline at end of file +975592505cfeca8fda7c8f291e0040bf \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png index 1e046a218..8111060bf 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index 47d75c37f..f860402bf 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index 2170ed356..353560c68 100644 --- a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -ad5ba08c8521da06825699283ed05346 \ No newline at end of file +975592505cfeca8fda7c8f291e0040bf \ No newline at end of file diff --git a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index 1e046a218..8111060bf 100644 Binary files a/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png and b/structentt_1_1meta__associative__container__traits_3_01std_1_1unordered__set_3_01Key_00_01Args_8_8_8_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1meta__class__template__tag.html b/structentt_1_1meta__class__template__tag.html index 0d4e12884..c336c0158 100644 --- a/structentt_1_1meta__class__template__tag.html +++ b/structentt_1_1meta__class__template__tag.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_class_template_tag< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -88,7 +88,7 @@ struct entt::meta_class_template_tag< typename > diff --git a/structentt_1_1meta__container__traits-members.html b/structentt_1_1meta__container__traits-members.html index a33cb1d6d..49fd1d733 100644 --- a/structentt_1_1meta__container__traits-members.html +++ b/structentt_1_1meta__container__traits-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1meta__container__traits.html b/structentt_1_1meta__container__traits.html index 6cf4d73e3..eb4b9c363 100644 --- a/structentt_1_1meta__container__traits.html +++ b/structentt_1_1meta__container__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_container_traits< Container, Trait > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,7 +82,7 @@ $(function() { Inheritance diagram for entt::meta_container_traits< Container, Trait >:
    Inheritance graph
    - + @@ -91,7 +91,7 @@ Inheritance diagram for entt::meta_container_traits< Container, Trait >:
    Collaboration graph
    - + @@ -124,7 +124,7 @@ struct entt::meta_container_traits< Container, Trait >
    diff --git a/structentt_1_1meta__ctor-members.html b/structentt_1_1meta__ctor-members.html index b400c803b..c5ee4bce8 100644 --- a/structentt_1_1meta__ctor-members.html +++ b/structentt_1_1meta__ctor-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@
    - + @@ -73,21 +73,21 @@ $(function() {

    This is the complete list of members for entt::meta_ctor, including all inherited members.

    - - + + - + - - - + + +
    arg(size_type index) const noexceptentt::meta_ctorinline
    arity() const noexceptentt::meta_ctorinline
    arg(size_type index) constentt::meta_ctorinline
    arity() constentt::meta_ctorinline
    invoke(meta_any *const args, const size_type sz) constentt::meta_ctorinline
    invoke([[maybe_unused]] Args &&... args) constentt::meta_ctorinline
    meta_ctor(const node_type *curr=nullptr) noexceptentt::meta_ctorinline
    meta_ctor(const node_type *curr=nullptr)entt::meta_ctorinline
    node_type typedefentt::meta_ctor
    operator bool() const noexceptentt::meta_ctorinlineexplicit
    parent() const noexceptentt::meta_ctorinline
    prop() const noexceptentt::meta_ctorinline
    operator bool() constentt::meta_ctorinlineexplicit
    parent() constentt::meta_ctorinline
    prop() constentt::meta_ctorinline
    prop(meta_any key) constentt::meta_ctorinline
    size_type typedefentt::meta_ctor
    diff --git a/structentt_1_1meta__ctor.html b/structentt_1_1meta__ctor.html index b409ed1c4..3d8521e5f 100644 --- a/structentt_1_1meta__ctor.html +++ b/structentt_1_1meta__ctor.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_ctor Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -93,18 +93,18 @@ using 

    Public Member Functions

    meta_ctor (const node_type *curr=nullptr) noexcept - Constructs an instance from a given node. More...
    -  -meta_type parent () const noexcept - Returns the type to which an object belongs. More...
    -  -size_type arity () const noexcept - Returns the number of arguments accepted by a constructor. More...
    -  -meta_type arg (size_type index) const noexcept - Returns the type of the i-th argument of a constructor. More...
    -  + meta_ctor (const node_type *curr=nullptr) + Constructs an instance from a given node. More...
    +  +meta_type parent () const + Returns the type to which an object belongs. More...
    +  +size_type arity () const + Returns the number of arguments accepted by a constructor. More...
    +  +meta_type arg (size_type index) const + Returns the type of the i-th argument of a constructor. More...
    meta_any invoke (meta_any *const args, const size_type sz) const  Creates an instance of the underlying type, if possible. More...
      @@ -112,23 +112,23 @@ Public Member Functions meta_any invoke ([[maybe_unused]] Args &&... args) const  Creates an instance of the underlying type, if possible. More...
      -meta_range< meta_propprop () const noexcept - Returns a range to use to visit all properties. More...
    -  +meta_range< meta_propprop () const + Returns a range to use to visit all properties. More...
    meta_prop prop (meta_any key) const  Returns the property associated with a given key. More...
      - operator bool () const noexcept - Returns true if an object is valid, false otherwise. More...
    -  + operator bool () const + Returns true if an object is valid, false otherwise. More...

    Detailed Description

    Opaque wrapper for constructors.

    -

    Definition at line 696 of file meta.hpp.

    +

    Definition at line 733 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_ctor()

    + +

    ◆ meta_ctor()

    @@ -146,7 +146,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -159,13 +159,13 @@ Public Member Functions -

    Definition at line 703 of file meta.hpp.

    +

    Definition at line 740 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ arg()

    + +

    ◆ arg()

    @@ -183,7 +183,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -197,12 +197,12 @@ Public Member Functions
    Returns
    The type of the i-th argument of a constructor.
    -

    Definition at line 1612 of file meta.hpp.

    +

    Definition at line 1643 of file meta.hpp.

    - -

    ◆ arity()

    + +

    ◆ arity()

    @@ -219,7 +219,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -227,7 +227,7 @@ Public Member Functions

    Returns the number of arguments accepted by a constructor.

    Returns
    The number of arguments accepted by the constructor.
    -

    Definition at line 717 of file meta.hpp.

    +

    Definition at line 754 of file meta.hpp.

    @@ -271,9 +271,9 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 752 of file meta.hpp.

    +

    Definition at line 789 of file meta.hpp.

    @@ -320,14 +320,14 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 738 of file meta.hpp.

    +

    Definition at line 775 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -344,7 +344,7 @@ template<typename... Args>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -352,12 +352,12 @@ template<typename... Args>

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 778 of file meta.hpp.

    +

    Definition at line 815 of file meta.hpp.

    - -

    ◆ parent()

    + +

    ◆ parent()

    @@ -374,7 +374,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -382,12 +382,12 @@ template<typename... Args>

    Returns the type to which an object belongs.

    Returns
    The type to which the object belongs.
    -

    Definition at line 1607 of file meta.hpp.

    +

    Definition at line 1638 of file meta.hpp.

    - -

    ◆ prop() [1/2]

    + +

    ◆ prop() [1/2]

    @@ -404,7 +404,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -412,7 +412,7 @@ template<typename... Args>

    Returns a range to use to visit all properties.

    Returns
    An iterable range to use to visit all properties.
    -

    Definition at line 761 of file meta.hpp.

    +

    Definition at line 798 of file meta.hpp.

    @@ -449,7 +449,7 @@ template<typename... Args>
    Returns
    The property associated with the given key, if any.
    -

    Definition at line 770 of file meta.hpp.

    +

    Definition at line 807 of file meta.hpp.

    @@ -459,7 +459,7 @@ template<typename... Args> diff --git a/structentt_1_1meta__ctx-members.html b/structentt_1_1meta__ctx-members.html index 7c5be197b..79c16bc0f 100644 --- a/structentt_1_1meta__ctx-members.html +++ b/structentt_1_1meta__ctx-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,11 +73,11 @@ $(function() {

    This is the complete list of members for entt::meta_ctx, including all inherited members.

    - +
    bind(meta_ctx other) noexceptentt::meta_ctxinlinestatic
    bind(meta_ctx other)entt::meta_ctxinlinestatic
    diff --git a/structentt_1_1meta__ctx.html b/structentt_1_1meta__ctx.html index 2a1ab53e6..ae9989660 100644 --- a/structentt_1_1meta__ctx.html +++ b/structentt_1_1meta__ctx.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_ctx Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,17 +81,17 @@ $(function() { - - - + + +

    Static Public Member Functions

    static void bind (meta_ctx other) noexcept
     Binds the meta system to a given context. More...
     
    static void bind (meta_ctx other)
     Binds the meta system to a given context. More...
     

    Detailed Description

    Opaque container for a meta context.

    Definition at line 51 of file ctx.hpp.

    Member Function Documentation

    - -

    ◆ bind()

    + +

    ◆ bind()

    @@ -109,7 +109,7 @@ Static Public Member Functions -inlinestaticnoexcept +inlinestatic
    @@ -132,7 +132,7 @@ Static Public Member Functions
    diff --git a/structentt_1_1meta__data-members.html b/structentt_1_1meta__data-members.html index 22a371355..4a6d1ffd0 100644 --- a/structentt_1_1meta__data-members.html +++ b/structentt_1_1meta__data-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@
    - + @@ -74,21 +74,21 @@ $(function() {

    This is the complete list of members for entt::meta_data, including all inherited members.

    - - - - + + + + - - - + + + - +
    get(meta_handle instance) constentt::meta_datainline
    id() const noexceptentt::meta_datainline
    is_const() const noexceptentt::meta_datainline
    is_static() const noexceptentt::meta_datainline
    meta_data(const node_type *curr=nullptr) noexceptentt::meta_datainline
    id() constentt::meta_datainline
    is_const() constentt::meta_datainline
    is_static() constentt::meta_datainline
    meta_data(const node_type *curr=nullptr)entt::meta_datainline
    node_type typedefentt::meta_data
    operator bool() const noexceptentt::meta_datainlineexplicit
    parent() const noexceptentt::meta_datainline
    prop() const noexceptentt::meta_datainline
    operator bool() constentt::meta_datainlineexplicit
    parent() constentt::meta_datainline
    prop() constentt::meta_datainline
    prop(meta_any key) constentt::meta_datainline
    set(meta_handle instance, Type &&value) constentt::meta_datainline
    type() const noexceptentt::meta_datainline
    type() constentt::meta_datainline
    diff --git a/structentt_1_1meta__data.html b/structentt_1_1meta__data.html index 70b83c4ba..e4308a899 100644 --- a/structentt_1_1meta__data.html +++ b/structentt_1_1meta__data.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_data Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,24 +89,24 @@ using 

    Public Member Functions

    meta_data (const node_type *curr=nullptr) noexcept - Constructs an instance from a given node. More...
    -  -id_type id () const noexcept - Returns the identifier assigned to a type. More...
    -  -meta_type parent () const noexcept - Returns the type to which an object belongs. More...
    -  -bool is_const () const noexcept - Indicates whether a data member is constant or not. More...
    -  -bool is_static () const noexcept - Indicates whether a data member is static or not. More...
    -  -meta_type type () const noexcept - Returns the type of the underlying object. More...
    -  + meta_data (const node_type *curr=nullptr) + Constructs an instance from a given node. More...
    +  +id_type id () const + Returns the identifier assigned to a type. More...
    +  +meta_type parent () const + Returns the type to which an object belongs. More...
    +  +bool is_const () const + Indicates whether a data member is constant or not. More...
    +  +bool is_static () const + Indicates whether a data member is static or not. More...
    +  +meta_type type () const + Returns the type of the underlying object. More...
    +  template<typename Type > bool set (meta_handle instance, Type &&value) const  Sets the value of a given variable. More...
    @@ -114,23 +114,23 @@ Public Member Functions meta_any get (meta_handle instance) const  Gets the value of a given variable. More...
      -meta_range< meta_propprop () const noexcept - Returns a range to use to visit all properties. More...
    -  +meta_range< meta_propprop () const + Returns a range to use to visit all properties. More...
    meta_prop prop (meta_any key) const  Returns the property associated with a given key. More...
      - operator bool () const noexcept - Returns true if an object is valid, false otherwise. More...
    -  + operator bool () const + Returns true if an object is valid, false otherwise. More...

    Detailed Description

    Opaque wrapper for data members.

    -

    Definition at line 788 of file meta.hpp.

    +

    Definition at line 825 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_data()

    + +

    ◆ meta_data()

    @@ -148,7 +148,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -161,7 +161,7 @@ Public Member Functions -

    Definition at line 793 of file meta.hpp.

    +

    Definition at line 830 of file meta.hpp.

    @@ -198,14 +198,14 @@ Public Member Functions -
    Returns
    A meta any containing the value of the underlying variable.
    +
    Returns
    A wrapper containing the value of the underlying variable.
    -

    Definition at line 852 of file meta.hpp.

    +

    Definition at line 889 of file meta.hpp.

    - -

    ◆ id()

    + +

    ◆ id()

    @@ -222,7 +222,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -230,12 +230,12 @@ Public Member Functions

    Returns the identifier assigned to a type.

    Returns
    The identifier assigned to the type.
    -

    Definition at line 798 of file meta.hpp.

    +

    Definition at line 835 of file meta.hpp.

    - -

    ◆ is_const()

    + +

    ◆ is_const()

    @@ -252,7 +252,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -260,12 +260,12 @@ Public Member Functions

    Indicates whether a data member is constant or not.

    Returns
    True if the data member is constant, false otherwise.
    -

    Definition at line 809 of file meta.hpp.

    +

    Definition at line 846 of file meta.hpp.

    - -

    ◆ is_static()

    + +

    ◆ is_static()

    @@ -282,7 +282,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -290,12 +290,12 @@ Public Member Functions

    Indicates whether a data member is static or not.

    Returns
    True if the data member is static, false otherwise.
    -

    Definition at line 817 of file meta.hpp.

    +

    Definition at line 854 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -312,7 +312,7 @@ Public Member Functions -inlineexplicitnoexcept +inlineexplicit
    @@ -320,12 +320,12 @@ Public Member Functions

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 874 of file meta.hpp.

    +

    Definition at line 911 of file meta.hpp.

    - -

    ◆ parent()

    + +

    ◆ parent()

    @@ -342,7 +342,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -350,12 +350,12 @@ Public Member Functions

    Returns the type to which an object belongs.

    Returns
    The type to which the object belongs.
    -

    Definition at line 1617 of file meta.hpp.

    +

    Definition at line 1648 of file meta.hpp.

    - -

    ◆ prop() [1/2]

    + +

    ◆ prop() [1/2]

    @@ -372,7 +372,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -380,7 +380,7 @@ Public Member Functions

    Returns a range to use to visit all properties.

    Returns
    An iterable range to use to visit all properties.
    -

    Definition at line 857 of file meta.hpp.

    +

    Definition at line 894 of file meta.hpp.

    @@ -417,7 +417,7 @@ Public Member Functions
    Returns
    The property associated with the given key, if any.
    -

    Definition at line 866 of file meta.hpp.

    +

    Definition at line 903 of file meta.hpp.

    @@ -475,12 +475,12 @@ template<typename Type >
    Returns
    True in case of success, false otherwise.
    -

    Definition at line 839 of file meta.hpp.

    +

    Definition at line 876 of file meta.hpp.

    - -

    ◆ type()

    + +

    ◆ type()

    @@ -497,7 +497,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -505,7 +505,7 @@ template<typename Type >

    Returns the type of the underlying object.

    Returns
    The type of the underlying object, if any.
    -

    Definition at line 1622 of file meta.hpp.

    +

    Definition at line 1653 of file meta.hpp.

    @@ -515,7 +515,7 @@ template<typename Type > diff --git a/structentt_1_1meta__factory.html b/structentt_1_1meta__factory.html index eb1245ca3..b264ae060 100644 --- a/structentt_1_1meta__factory.html +++ b/structentt_1_1meta__factory.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_factory<... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -87,7 +87,7 @@ struct entt::meta_factory<... > diff --git a/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html b/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html index f997d52b0..87607c652 100644 --- a/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html +++ b/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,23 +73,24 @@ $(function() {

    This is the complete list of members for entt::meta_factory< Type, Spec... >, including all inherited members.

    - - - - - - - - - - - - - + + + + + + + + + + + + + +
    base() noexceptentt::meta_factory< Type >inline
    conv() noexceptentt::meta_factory< Type >inline
    conv() noexceptentt::meta_factory< Type >inline
    ctor() noexceptentt::meta_factory< Type >inline
    ctor() noexceptentt::meta_factory< Type >inline
    data(const id_type id) noexceptentt::meta_factory< Type >inline
    data(const id_type id) noexceptentt::meta_factory< Type >inline
    dtor() noexceptentt::meta_factory< Type >inline
    func(const id_type id) noexceptentt::meta_factory< Type >inline
    meta_factory(internal::meta_prop_node **target) noexceptentt::meta_factory< Type, Spec... >inline
    prop(PropertyOrKey &&property_or_key, Value &&... value) &&entt::meta_factory< Type, Spec... >inline
    props(Property... property) &&entt::meta_factory< Type, Spec... >inline
    type(const id_type id=type_hash< Type >::value())entt::meta_factory< Type >inline
    base()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    ctor()entt::meta_factory< Type >inline
    ctor()entt::meta_factory< Type >inline
    data(const id_type id)entt::meta_factory< Type >inline
    data(const id_type id)entt::meta_factory< Type >inline
    dtor()entt::meta_factory< Type >inline
    func(const id_type id)entt::meta_factory< Type >inline
    meta_factory(internal::meta_prop_node **target)entt::meta_factory< Type, Spec... >inline
    prop(PropertyOrKey &&property_or_key, Value &&... value) &&entt::meta_factory< Type, Spec... >inline
    props(Property... property) &&entt::meta_factory< Type, Spec... >inline
    type(const id_type id=type_hash< Type >::value())entt::meta_factory< Type >inline
    diff --git a/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html b/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html index 9beb4b5f0..844efa161 100644 --- a/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html +++ b/structentt_1_1meta__factory_3_01Type_00_01Spec_8_8_8_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_factory< Type, Spec... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,7 +82,7 @@ $(function() { Inheritance diagram for entt::meta_factory< Type, Spec... >:
    Inheritance graph
    - + @@ -91,7 +91,7 @@ Inheritance diagram for entt::meta_factory< Type, Spec... >:
    Collaboration diagram for entt::meta_factory< Type, Spec... >:
    Collaboration graph
    - + @@ -99,9 +99,9 @@ Collaboration diagram for entt::meta_factory< Type, Spec... >:
    - - - + + + @@ -114,42 +114,46 @@ Public Member Functions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

     meta_factory (internal::meta_prop_node **target) noexcept
     Constructs an extended factory from a given node. More...
     
     meta_factory (internal::meta_prop_node **target)
     Constructs an extended factory from a given node. More...
     
    template<typename PropertyOrKey , typename... Value>
    auto prop (PropertyOrKey &&property_or_key, Value &&... value) &&
     Assigns a property to the last meta object created. More...
    auto type (const id_type id=type_hash< Type >::value())
     Makes a meta type searchable. More...
     
    template<typename Base >
    auto base () noexcept
     Assigns a meta base to a meta type. More...
     
    template<typename To >
    auto conv () noexcept
     Assigns a meta conversion function to a meta type. More...
     
    template<auto Candidate>
    auto conv () noexcept
     Assigns a meta conversion function to a meta type. More...
     
    template<auto Candidate, typename Policy = as_is_t>
    auto ctor () noexcept
     Assigns a meta constructor to a meta type. More...
     
    template<typename... Args>
    auto ctor () noexcept
     Assigns a meta constructor to a meta type. More...
     
    template<auto Func>
    auto dtor () noexcept
     Assigns a meta destructor to a meta type. More...
     
    template<auto Data, typename Policy = as_is_t>
    auto data (const id_type id) noexcept
     Assigns a meta data to a meta type. More...
     
    template<auto Setter, auto Getter, typename Policy = as_is_t>
    auto data (const id_type id) noexcept
     Assigns a meta data to a meta type by means of its setter and getter. More...
     
    template<auto Candidate, typename Policy = as_is_t>
    auto func (const id_type id) noexcept
     Assigns a meta funcion to a meta type. More...
     
    template<typename Base >
    auto base ()
     Assigns a meta base to a meta type. More...
     
    template<auto Candidate>
    std::enable_if_t< std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv ()
     Assigns a meta conversion function to a meta type. More...
     
    template<auto Candidate>
    std::enable_if_t<!std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv ()
     Assigns a meta conversion function to a meta type. More...
     
    template<typename To >
    auto conv ()
     Assigns a meta conversion function to a meta type. More...
     
    template<auto Candidate, typename Policy = as_is_t>
    auto ctor ()
     Assigns a meta constructor to a meta type. More...
     
    template<typename... Args>
    auto ctor ()
     Assigns a meta constructor to a meta type. More...
     
    template<auto Func>
    auto dtor ()
     Assigns a meta destructor to a meta type. More...
     
    template<auto Data, typename Policy = as_is_t>
    auto data (const id_type id)
     Assigns a meta data to a meta type. More...
     
    template<auto Setter, auto Getter, typename Policy = as_is_t>
    auto data (const id_type id)
     Assigns a meta data to a meta type by means of its setter and getter. More...
     
    template<auto Candidate, typename Policy = as_is_t>
    auto func (const id_type id)
     Assigns a meta funcion to a meta type. More...
     

    Detailed Description

    template<typename Type, typename... Spec>
    @@ -166,8 +170,8 @@ struct entt::meta_factory< Type, Spec... >

    Definition at line 74 of file factory.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_factory()

    + +

    ◆ meta_factory()

    @@ -187,7 +191,7 @@ template<typename Type , typename... Spec>
    -inlinenoexcept +inline
    @@ -319,7 +323,7 @@ template<typename... Property>
    diff --git a/structentt_1_1meta__factory_3_01Type_01_4-members.html b/structentt_1_1meta__factory_3_01Type_01_4-members.html index ff5b3df81..96f4d3823 100644 --- a/structentt_1_1meta__factory_3_01Type_01_4-members.html +++ b/structentt_1_1meta__factory_3_01Type_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,20 +73,21 @@ $(function() {

    This is the complete list of members for entt::meta_factory< Type >, including all inherited members.

    - - - - - - - - - - + + + + + + + + + + +
    base() noexceptentt::meta_factory< Type >inline
    conv() noexceptentt::meta_factory< Type >inline
    conv() noexceptentt::meta_factory< Type >inline
    ctor() noexceptentt::meta_factory< Type >inline
    ctor() noexceptentt::meta_factory< Type >inline
    data(const id_type id) noexceptentt::meta_factory< Type >inline
    data(const id_type id) noexceptentt::meta_factory< Type >inline
    dtor() noexceptentt::meta_factory< Type >inline
    func(const id_type id) noexceptentt::meta_factory< Type >inline
    type(const id_type id=type_hash< Type >::value())entt::meta_factory< Type >inline
    base()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    conv()entt::meta_factory< Type >inline
    ctor()entt::meta_factory< Type >inline
    ctor()entt::meta_factory< Type >inline
    data(const id_type id)entt::meta_factory< Type >inline
    data(const id_type id)entt::meta_factory< Type >inline
    dtor()entt::meta_factory< Type >inline
    func(const id_type id)entt::meta_factory< Type >inline
    type(const id_type id=type_hash< Type >::value())entt::meta_factory< Type >inline
    diff --git a/structentt_1_1meta__factory_3_01Type_01_4.html b/structentt_1_1meta__factory_3_01Type_01_4.html index 360adb296..90a573855 100644 --- a/structentt_1_1meta__factory_3_01Type_01_4.html +++ b/structentt_1_1meta__factory_3_01Type_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_factory< Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,7 +82,7 @@ $(function() { Inheritance diagram for entt::meta_factory< Type >:
    Inheritance graph
    - + @@ -93,42 +93,46 @@ Public Member Functions auto type (const id_type id=type_hash< Type >::value())  Makes a meta type searchable. More...
      -template<typename Base > -auto base () noexcept - Assigns a meta base to a meta type. More...
    -  -template<typename To > -auto conv () noexcept - Assigns a meta conversion function to a meta type. More...
    -  -template<auto Candidate> -auto conv () noexcept - Assigns a meta conversion function to a meta type. More...
    -  -template<auto Candidate, typename Policy = as_is_t> -auto ctor () noexcept - Assigns a meta constructor to a meta type. More...
    -  -template<typename... Args> -auto ctor () noexcept - Assigns a meta constructor to a meta type. More...
    -  -template<auto Func> -auto dtor () noexcept - Assigns a meta destructor to a meta type. More...
    -  -template<auto Data, typename Policy = as_is_t> -auto data (const id_type id) noexcept - Assigns a meta data to a meta type. More...
    -  -template<auto Setter, auto Getter, typename Policy = as_is_t> -auto data (const id_type id) noexcept - Assigns a meta data to a meta type by means of its setter and getter. More...
    -  -template<auto Candidate, typename Policy = as_is_t> -auto func (const id_type id) noexcept - Assigns a meta funcion to a meta type. More...
    -  +template<typename Base > +auto base () + Assigns a meta base to a meta type. More...
    +  +template<auto Candidate> +std::enable_if_t< std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv () + Assigns a meta conversion function to a meta type. More...
    +  +template<auto Candidate> +std::enable_if_t<!std::is_member_function_pointer_v< decltype(Candidate)>, meta_factory< Type > > conv () + Assigns a meta conversion function to a meta type. More...
    +  +template<typename To > +auto conv () + Assigns a meta conversion function to a meta type. More...
    +  +template<auto Candidate, typename Policy = as_is_t> +auto ctor () + Assigns a meta constructor to a meta type. More...
    +  +template<typename... Args> +auto ctor () + Assigns a meta constructor to a meta type. More...
    +  +template<auto Func> +auto dtor () + Assigns a meta destructor to a meta type. More...
    +  +template<auto Data, typename Policy = as_is_t> +auto data (const id_type id) + Assigns a meta data to a meta type. More...
    +  +template<auto Setter, auto Getter, typename Policy = as_is_t> +auto data (const id_type id) + Assigns a meta data to a meta type by means of its setter and getter. More...
    +  +template<auto Candidate, typename Policy = as_is_t> +auto func (const id_type id) + Assigns a meta funcion to a meta type. More...

    Detailed Description

    template<typename Type>
    @@ -144,8 +148,8 @@ struct entt::meta_factory< Type >

    Definition at line 185 of file factory.hpp.

    Member Function Documentation

    - -

    ◆ base()

    + +

    ◆ base()

    @@ -166,7 +170,7 @@ template<typename Base >
    -inlinenoexcept +inline
    @@ -185,8 +189,92 @@ template<typename Base >
    - -

    ◆ conv() [1/2]

    + +

    ◆ conv() [1/3]

    + +
    +
    +
    +template<typename Type >
    +
    +template<auto Candidate>
    + + + + + +
    + + + + + + + +
    std::enable_if_t<std::is_member_function_pointer_v<decltype(Candidate)>, meta_factory<Type> > entt::meta_factory< Type >::conv ()
    +
    +inline
    +
    + +

    Assigns a meta conversion function to a meta type.

    +

    Conversion functions can be either free functions or member functions.
    + In case of free functions, they must accept a const reference to an instance of the parent type as an argument. In case of member functions, they should have no arguments at all.

    +
    Template Parameters
    + + +
    CandidateThe actual function to use for the conversion.
    +
    +
    +
    Returns
    A meta factory for the parent type.
    + +

    Definition at line 248 of file factory.hpp.

    + +
    +
    + +

    ◆ conv() [2/3]

    + +
    +
    +
    +template<typename Type >
    +
    +template<auto Candidate>
    + + + + + +
    + + + + + + + +
    std::enable_if_t<!std::is_member_function_pointer_v<decltype(Candidate)>, meta_factory<Type> > entt::meta_factory< Type >::conv ()
    +
    +inline
    +
    + +

    Assigns a meta conversion function to a meta type.

    +

    Conversion functions can be either free functions or member functions.
    + In case of free functions, they must accept a const reference to an instance of the parent type as an argument. In case of member functions, they should have no arguments at all.

    +
    Template Parameters
    + + +
    CandidateThe actual function to use for the conversion.
    +
    +
    +
    Returns
    A meta factory for the parent type.
    + +

    Definition at line 271 of file factory.hpp.

    + +
    +
    + +

    ◆ conv() [3/3]

    @@ -207,7 +295,7 @@ template<typename To >
    -inlinenoexcept +inline
    @@ -222,54 +310,12 @@ template<typename To >
    Returns
    A meta factory for the parent type.
    -

    Definition at line 245 of file factory.hpp.

    +

    Definition at line 302 of file factory.hpp.

    - -

    ◆ conv() [2/2]

    - -
    -
    -
    -template<typename Type >
    -
    -template<auto Candidate>
    - - - - - -
    - - - - - - - -
    auto entt::meta_factory< Type >::conv ()
    -
    -inlinenoexcept
    -
    - -

    Assigns a meta conversion function to a meta type.

    -

    Conversion functions can be either free functions or member functions.
    - In case of free functions, they must accept a const reference to an instance of the parent type as an argument. In case of member functions, they should have no arguments at all.

    -
    Template Parameters
    - - -
    CandidateThe actual function to use for the conversion.
    -
    -
    -
    Returns
    A meta factory for the parent type.
    - -

    Definition at line 279 of file factory.hpp.

    - -
    -
    - -

    ◆ ctor() [1/2]

    + +

    ◆ ctor() [1/2]

    @@ -290,7 +336,7 @@ template<auto Candidate, typename Policy = as_is_t>
    -inlinenoexcept +inline
    @@ -307,12 +353,12 @@ template<auto Candidate, typename Policy = as_is_t>
    Returns
    An extended meta factory for the parent type.
    -

    Definition at line 314 of file factory.hpp.

    +

    Definition at line 337 of file factory.hpp.

    - -

    ◆ ctor() [2/2]

    + +

    ◆ ctor() [2/2]

    @@ -333,7 +379,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -348,12 +394,12 @@ template<typename... Args>
    Returns
    An extended meta factory for the parent type.
    -

    Definition at line 351 of file factory.hpp.

    +

    Definition at line 374 of file factory.hpp.

    - -

    ◆ data() [1/2]

    + +

    ◆ data() [1/2]

    @@ -375,7 +421,7 @@ template<auto Data, typename Policy = as_is_t>
    -inlinenoexcept +inline
    @@ -398,12 +444,12 @@ template<auto Data, typename Policy = as_is_t>
    Returns
    An extended meta factory for the parent type.
    -

    Definition at line 418 of file factory.hpp.

    +

    Definition at line 441 of file factory.hpp.

    - -

    ◆ data() [2/2]

    + +

    ◆ data() [2/2]

    @@ -425,7 +471,7 @@ template<auto Setter, auto Getter, typename Policy = as_is_t>
    -inlinenoexcept +inline
    @@ -450,12 +496,12 @@ template<auto Setter, auto Getter, typename Policy = as_is_t>
    Returns
    An extended meta factory for the parent type.
    -

    Definition at line 470 of file factory.hpp.

    +

    Definition at line 493 of file factory.hpp.

    - -

    ◆ dtor()

    + +

    ◆ dtor()

    @@ -476,7 +522,7 @@ template<auto Func>
    -inlinenoexcept +inline
    @@ -493,12 +539,12 @@ template<auto Func>
    Returns
    A meta factory for the parent type.
    -

    Definition at line 393 of file factory.hpp.

    +

    Definition at line 416 of file factory.hpp.

    - -

    ◆ func()

    + +

    ◆ func()

    @@ -520,7 +566,7 @@ template<auto Candidate, typename Policy = as_is_t>
    -inlinenoexcept +inline
    @@ -543,7 +589,7 @@ template<auto Candidate, typename Policy = as_is_t>
    Returns
    An extended meta factory for the parent type.
    -

    Definition at line 511 of file factory.hpp.

    +

    Definition at line 534 of file factory.hpp.

    @@ -592,7 +638,7 @@ template<typename Type > diff --git a/structentt_1_1meta__func-members.html b/structentt_1_1meta__func-members.html index 12810e86a..be8b385bf 100644 --- a/structentt_1_1meta__func-members.html +++ b/structentt_1_1meta__func-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,25 +73,25 @@ $(function() {

    This is the complete list of members for entt::meta_func, including all inherited members.

    - - - + + + - - - + + + - - - + + + - +
    arg(size_type index) const noexceptentt::meta_funcinline
    arity() const noexceptentt::meta_funcinline
    id() const noexceptentt::meta_funcinline
    arg(size_type index) constentt::meta_funcinline
    arity() constentt::meta_funcinline
    id() constentt::meta_funcinline
    invoke(meta_handle instance, meta_any *const args, const size_type sz) constentt::meta_funcinline
    invoke(meta_handle instance, Args &&... args) constentt::meta_funcinline
    is_const() const noexceptentt::meta_funcinline
    is_static() const noexceptentt::meta_funcinline
    meta_func(const node_type *curr=nullptr) noexceptentt::meta_funcinline
    is_const() constentt::meta_funcinline
    is_static() constentt::meta_funcinline
    meta_func(const node_type *curr=nullptr)entt::meta_funcinline
    node_type typedefentt::meta_func
    operator bool() const noexceptentt::meta_funcinlineexplicit
    parent() const noexceptentt::meta_funcinline
    prop() const noexceptentt::meta_funcinline
    operator bool() constentt::meta_funcinlineexplicit
    parent() constentt::meta_funcinline
    prop() constentt::meta_funcinline
    prop(meta_any key) constentt::meta_funcinline
    ret() const noexceptentt::meta_funcinline
    ret() constentt::meta_funcinline
    size_type typedefentt::meta_func
    diff --git a/structentt_1_1meta__func.html b/structentt_1_1meta__func.html index 39860a135..e2ac5beab 100644 --- a/structentt_1_1meta__func.html +++ b/structentt_1_1meta__func.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_func Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -93,30 +93,30 @@ using 

    Public Member Functions

    meta_func (const node_type *curr=nullptr) noexcept - Constructs an instance from a given node. More...
    -  -id_type id () const noexcept - Returns the identifier assigned to a type. More...
    -  -meta_type parent () const noexcept - Returns the type to which an object belongs. More...
    -  -size_type arity () const noexcept - Returns the number of arguments accepted by a member function. More...
    -  -bool is_const () const noexcept - Indicates whether a member function is constant or not. More...
    -  -bool is_static () const noexcept - Indicates whether a member function is static or not. More...
    -  -meta_type ret () const noexcept - Returns the return type of a member function. More...
    -  -meta_type arg (size_type index) const noexcept - Returns the type of the i-th argument of a member function. More...
    -  + meta_func (const node_type *curr=nullptr) + Constructs an instance from a given node. More...
    +  +id_type id () const + Returns the identifier assigned to a type. More...
    +  +meta_type parent () const + Returns the type to which an object belongs. More...
    +  +size_type arity () const + Returns the number of arguments accepted by a member function. More...
    +  +bool is_const () const + Indicates whether a member function is constant or not. More...
    +  +bool is_static () const + Indicates whether a member function is static or not. More...
    +  +meta_type ret () const + Returns the return type of a member function. More...
    +  +meta_type arg (size_type index) const + Returns the type of the i-th argument of a member function. More...
    meta_any invoke (meta_handle instance, meta_any *const args, const size_type sz) const  Invokes the underlying function, if possible. More...
      @@ -124,23 +124,23 @@ Public Member Functions meta_any invoke (meta_handle instance, Args &&... args) const  Invokes the underlying function, if possible. More...
      -meta_range< meta_propprop () const noexcept - Returns a range to use to visit all properties. More...
    -  +meta_range< meta_propprop () const + Returns a range to use to visit all properties. More...
    meta_prop prop (meta_any key) const  Returns the property associated with a given key. More...
      - operator bool () const noexcept - Returns true if an object is valid, false otherwise. More...
    -  + operator bool () const + Returns true if an object is valid, false otherwise. More...

    Detailed Description

    Opaque wrapper for member functions.

    -

    Definition at line 884 of file meta.hpp.

    +

    Definition at line 921 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_func()

    + +

    ◆ meta_func()

    @@ -158,7 +158,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -171,13 +171,13 @@ Public Member Functions -

    Definition at line 891 of file meta.hpp.

    +

    Definition at line 928 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ arg()

    + +

    ◆ arg()

    @@ -195,7 +195,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -209,12 +209,12 @@ Public Member Functions
    Returns
    The type of the i-th argument of a member function.
    -

    Definition at line 1637 of file meta.hpp.

    +

    Definition at line 1668 of file meta.hpp.

    - -

    ◆ arity()

    + +

    ◆ arity()

    @@ -231,7 +231,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -239,12 +239,12 @@ Public Member Functions

    Returns the number of arguments accepted by a member function.

    Returns
    The number of arguments accepted by the member function.
    -

    Definition at line 907 of file meta.hpp.

    +

    Definition at line 944 of file meta.hpp.

    - -

    ◆ id()

    + +

    ◆ id()

    @@ -261,7 +261,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -269,7 +269,7 @@ Public Member Functions

    Returns the identifier assigned to a type.

    Returns
    The identifier assigned to the type.
    -

    Definition at line 896 of file meta.hpp.

    +

    Definition at line 933 of file meta.hpp.

    @@ -324,9 +324,9 @@ template<typename... Args> -
    Returns
    A meta any containing the new instance, if any.
    +
    Returns
    A wrapper containing the new instance, if any.
    -

    Definition at line 970 of file meta.hpp.

    +

    Definition at line 1007 of file meta.hpp.

    @@ -381,14 +381,14 @@ template<typename... Args> -
    Returns
    A meta any containing the returned value, if any.
    +
    Returns
    A wrapper containing the returned value, if any.
    -

    Definition at line 955 of file meta.hpp.

    +

    Definition at line 992 of file meta.hpp.

    - -

    ◆ is_const()

    + +

    ◆ is_const()

    @@ -405,7 +405,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -413,12 +413,12 @@ template<typename... Args>

    Indicates whether a member function is constant or not.

    Returns
    True if the member function is constant, false otherwise.
    -

    Definition at line 915 of file meta.hpp.

    +

    Definition at line 952 of file meta.hpp.

    - -

    ◆ is_static()

    + +

    ◆ is_static()

    @@ -435,7 +435,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -443,12 +443,12 @@ template<typename... Args>

    Indicates whether a member function is static or not.

    Returns
    True if the member function is static, false otherwise.
    -

    Definition at line 923 of file meta.hpp.

    +

    Definition at line 960 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -465,7 +465,7 @@ template<typename... Args>
    -inlineexplicitnoexcept +inlineexplicit
    @@ -473,12 +473,12 @@ template<typename... Args>

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 993 of file meta.hpp.

    +

    Definition at line 1030 of file meta.hpp.

    - -

    ◆ parent()

    + +

    ◆ parent()

    @@ -495,7 +495,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -503,12 +503,12 @@ template<typename... Args>

    Returns the type to which an object belongs.

    Returns
    The type to which the object belongs.
    -

    Definition at line 1627 of file meta.hpp.

    +

    Definition at line 1658 of file meta.hpp.

    - -

    ◆ prop() [1/2]

    + +

    ◆ prop() [1/2]

    @@ -525,7 +525,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -533,7 +533,7 @@ template<typename... Args>

    Returns a range to use to visit all properties.

    Returns
    An iterable range to use to visit all properties.
    -

    Definition at line 976 of file meta.hpp.

    +

    Definition at line 1013 of file meta.hpp.

    @@ -570,12 +570,12 @@ template<typename... Args>
    Returns
    The property associated with the given key, if any.
    -

    Definition at line 985 of file meta.hpp.

    +

    Definition at line 1022 of file meta.hpp.

    - -

    ◆ ret()

    + +

    ◆ ret()

    @@ -592,7 +592,7 @@ template<typename... Args>
    -inlinenoexcept +inline
    @@ -600,7 +600,7 @@ template<typename... Args>

    Returns the return type of a member function.

    Returns
    The return type of the member function.
    -

    Definition at line 1632 of file meta.hpp.

    +

    Definition at line 1663 of file meta.hpp.

    @@ -610,7 +610,7 @@ template<typename... Args> diff --git a/structentt_1_1meta__function__descriptor.html b/structentt_1_1meta__function__descriptor.html index 14bf10bde..336426ebb 100644 --- a/structentt_1_1meta__function__descriptor.html +++ b/structentt_1_1meta__function__descriptor.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_function_descriptor< typename, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::meta_function_descriptor< typename, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 22 of file utility.hpp.

    +

    Definition at line 21 of file utility.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html index cdba51593..ea7455dfd 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,7 +80,7 @@ $(function() { diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html index c5a9b3e65..5672de5f4 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -117,14 +117,14 @@ struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...) const > -

    Definition at line 33 of file utility.hpp.

    +

    Definition at line 32 of file utility.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html index 8bb5daa19..709c82352 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,7 +80,7 @@ $(function() { diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html index b5ed6f74f..ae744997f 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07Class_1_1_5_08_07Args_8_8_8_08_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)> Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -117,14 +117,14 @@ struct entt::meta_function_descriptor< Type, Ret(Class::*)(Args...)> -

    Definition at line 54 of file utility.hpp.

    +

    Definition at line 53 of file utility.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4-members.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4-members.html index 7b4575700..18df768f2 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4-members.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -80,7 +80,7 @@ $(function() { diff --git a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4.html b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4.html index 3d8960ce7..305f53ffd 100644 --- a/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4.html +++ b/structentt_1_1meta__function__descriptor_3_01Type_00_01Ret_07_5_08_07Args_8_8_8_08_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_function_descriptor< Type, Ret(*)(Args...)> Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -116,14 +116,14 @@ struct entt::meta_function_descriptor< Type, Ret(*)(Args...)> -

    Definition at line 74 of file utility.hpp.

    +

    Definition at line 73 of file utility.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1meta__handle-members.html b/structentt_1_1meta__handle-members.html index 78d7afeda..07b57830f 100644 --- a/structentt_1_1meta__handle-members.html +++ b/structentt_1_1meta__handle-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -76,8 +76,8 @@ $(function() { meta_handle()=defaultentt::meta_handle meta_handle(const meta_handle &)=deleteentt::meta_handle meta_handle(meta_handle &&)=defaultentt::meta_handle - meta_handle(Type &value) noexceptentt::meta_handleinline - operator bool() const noexceptentt::meta_handleinlineexplicit + meta_handle(Type &value)entt::meta_handleinline + operator bool() constentt::meta_handleinlineexplicit operator->()entt::meta_handleinline operator->() constentt::meta_handleinline operator=(const meta_handle &)=deleteentt::meta_handle @@ -85,7 +85,7 @@ $(function() { diff --git a/structentt_1_1meta__handle.html b/structentt_1_1meta__handle.html index 1032ce614..b5521171e 100644 --- a/structentt_1_1meta__handle.html +++ b/structentt_1_1meta__handle.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_handle Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -99,13 +99,13 @@ Public Member Functions meta_handleoperator= (meta_handle &&)=default  Default move assignment operator. More...
      -template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_handle>>> - meta_handle (Type &value) noexcept - Creates a handle that points to an unmanaged object. More...
    -  - operator bool () const noexcept - Returns false if a handle is invalid, true otherwise. More...
    -  +template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>> + meta_handle (Type &value) + Creates a handle that points to an unmanaged object. More...
    +  + operator bool () const + Returns false if a handle is invalid, true otherwise. More...
    meta_anyoperator-> ()  Access operator for accessing the contained opaque object. More...
      @@ -118,15 +118,15 @@ Public Member Functions

    A handle doesn't perform copies and isn't responsible for the contained object. It doesn't prolong the lifetime of the pointed instance.
    Handles are used to generate references to actual objects when needed.

    -

    Definition at line 588 of file meta.hpp.

    +

    Definition at line 625 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_handle()

    + +

    ◆ meta_handle()

    -template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::remove_cv_t<std::remove_reference_t<Type>>, meta_handle>>>
    +template<typename Type , typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, meta_handle>>>
    @@ -141,7 +141,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s
    -inlinenoexcept +inline
    @@ -160,13 +160,13 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -

    Definition at line 617 of file meta.hpp.

    +

    Definition at line 654 of file meta.hpp.

    Member Function Documentation

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -183,7 +183,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s -inlineexplicitnoexcept +inlineexplicit
    @@ -191,7 +191,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s

    Returns false if a handle is invalid, true otherwise.

    Returns
    False if the handle is invalid, true otherwise.
    -

    Definition at line 631 of file meta.hpp.

    +

    Definition at line 668 of file meta.hpp.

    @@ -219,9 +219,9 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s

    Access operator for accessing the contained opaque object.

    -
    Returns
    A meta any that shares a reference to an unmanaged object.
    +
    Returns
    A wrapper that shares a reference to an unmanaged object.
    -

    Definition at line 639 of file meta.hpp.

    +

    Definition at line 676 of file meta.hpp.

    @@ -249,9 +249,9 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s

    Access operator for accessing the contained opaque object.

    -
    Returns
    A meta any that shares a reference to an unmanaged object.
    +
    Returns
    A wrapper that shares a reference to an unmanaged object.
    -

    Definition at line 644 of file meta.hpp.

    +

    Definition at line 681 of file meta.hpp.

    @@ -319,7 +319,7 @@ template<typename Type , typename = std::enable_if_t<!std::is_same_v<s diff --git a/structentt_1_1meta__prop-members.html b/structentt_1_1meta__prop-members.html index 9a20daf9a..7553d9f9b 100644 --- a/structentt_1_1meta__prop-members.html +++ b/structentt_1_1meta__prop-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,14 +74,14 @@ $(function() {

    This is the complete list of members for entt::meta_prop, including all inherited members.

    - + - +
    key() constentt::meta_propinline
    meta_prop(const node_type *curr=nullptr) noexceptentt::meta_propinline
    meta_prop(const node_type *curr=nullptr)entt::meta_propinline
    node_type typedefentt::meta_prop
    operator bool() const noexceptentt::meta_propinlineexplicit
    operator bool() constentt::meta_propinlineexplicit
    value() constentt::meta_propinline
    diff --git a/structentt_1_1meta__prop.html b/structentt_1_1meta__prop.html index dfe6cfba0..24260efbc 100644 --- a/structentt_1_1meta__prop.html +++ b/structentt_1_1meta__prop.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_prop Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,26 +89,26 @@ using 

    Public Member Functions

    meta_prop (const node_type *curr=nullptr) noexcept - Constructs an instance from a given node. More...
    -  + meta_prop (const node_type *curr=nullptr) + Constructs an instance from a given node. More...
    meta_any key () const  Returns the stored key as a const reference. More...
      meta_any value () const  Returns the stored value by copy. More...
      - operator bool () const noexcept - Returns true if an object is valid, false otherwise. More...
    -  + operator bool () const + Returns true if an object is valid, false otherwise. More...

    Detailed Description

    Opaque wrapper for properties of any type.

    -

    Definition at line 654 of file meta.hpp.

    +

    Definition at line 691 of file meta.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ meta_prop()

    + +

    ◆ meta_prop()

    @@ -126,7 +126,7 @@ Public Member Functions -inlinenoexcept +inline
    @@ -139,7 +139,7 @@ Public Member Functions -

    Definition at line 662 of file meta.hpp.

    +

    Definition at line 699 of file meta.hpp.

    @@ -168,14 +168,14 @@ Public Member Functions

    Returns the stored key as a const reference.

    -
    Returns
    A meta any containing the key stored with the property.
    +
    Returns
    A wrapper containing the key stored with the property.
    -

    Definition at line 670 of file meta.hpp.

    +

    Definition at line 707 of file meta.hpp.

    - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -192,7 +192,7 @@ Public Member Functions -inlineexplicitnoexcept +inlineexplicit
    @@ -200,7 +200,7 @@ Public Member Functions

    Returns true if an object is valid, false otherwise.

    Returns
    True if the object is valid, false otherwise.
    -

    Definition at line 686 of file meta.hpp.

    +

    Definition at line 723 of file meta.hpp.

    @@ -228,9 +228,9 @@ Public Member Functions

    Returns the stored value by copy.

    -
    Returns
    A meta any containing the value stored with the property.
    +
    Returns
    A wrapper containing the value stored with the property.
    -

    Definition at line 678 of file meta.hpp.

    +

    Definition at line 715 of file meta.hpp.

    @@ -240,7 +240,7 @@ Public Member Functions diff --git a/structentt_1_1meta__sequence__container__traits.html b/structentt_1_1meta__sequence__container__traits.html index d376efd95..529933c29 100644 --- a/structentt_1_1meta__sequence__container__traits.html +++ b/structentt_1_1meta__sequence__container__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_sequence_container_traits< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,7 +86,7 @@ struct entt::meta_sequence_container_traits< typename > diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html index de000a082..9daac3947 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_sequence_container_traits< std::array< Type, N > >, including all inherited members.

    - - - - - + + + + +
    begin(std::array< Type, N > &cont)entt::basic_container< std::array< Type, N > >inlinestatic
    cbegin(const std::array< Type, N > &cont)entt::basic_container< std::array< Type, N > >inlinestatic
    cend(const std::array< Type, N > &cont)entt::basic_container< std::array< Type, N > >inlinestatic
    end(std::array< Type, N > &cont)entt::basic_container< std::array< Type, N > >inlinestatic
    size(const std::array< Type, N > &cont) noexceptentt::basic_container< std::array< Type, N > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::array< Type, N >, basic_container, basic_sequence_container, fixed_sequence_container >
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html index 3a9bbf23e..686a91cdc 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_sequence_container_traits< std::array< Type, N > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_sequence_container_traits< std::array< Type, N > >:
    Inheritance graph
    - - - - + + + +
    [legend]
    Collaboration diagram for entt::meta_sequence_container_traits< std::array< Type, N > >:
    Collaboration graph
    - - - - + + + +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::array< Type, N >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::array< Type, N > >
    static Container::size_type size (const std::array< Type, N > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::array< Type, N > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::array< Type, N > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::array< Type, N > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::array< Type, N > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -142,7 +142,7 @@ struct entt::meta_sequence_container_traits< std::array< Type, N > > diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.map b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.map index 50989fc83..c759a5f79 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.map +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.md5 b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.md5 index 64633cc29..c741b75a1 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -410e5e5009ff42f8ae69ab5afbb8e954 \ No newline at end of file +a329824f3580e6c1a30ce7aed33379ee \ No newline at end of file diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.png b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.png index 76c5e115e..29bb7f380 100644 Binary files a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.png and b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.map b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.map index 50989fc83..c759a5f79 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.map +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.md5 b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.md5 index 64633cc29..c741b75a1 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -410e5e5009ff42f8ae69ab5afbb8e954 \ No newline at end of file +a329824f3580e6c1a30ce7aed33379ee \ No newline at end of file diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.png b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.png index 76c5e115e..29bb7f380 100644 Binary files a/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.png and b/structentt_1_1meta__sequence__container__traits_3_01std_1_1array_3_01Type_00_01N_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4-members.html index 900dfcaa8..4916d8ea8 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,16 +73,16 @@ $(function() {

    This is the complete list of members for entt::meta_sequence_container_traits< std::vector< Type, Args... > >, including all inherited members.

    - - - - - + + + + +
    begin(std::vector< Type, Args... > &cont)entt::basic_container< std::vector< Type, Args... > >inlinestatic
    cbegin(const std::vector< Type, Args... > &cont)entt::basic_container< std::vector< Type, Args... > >inlinestatic
    cend(const std::vector< Type, Args... > &cont)entt::basic_container< std::vector< Type, Args... > >inlinestatic
    end(std::vector< Type, Args... > &cont)entt::basic_container< std::vector< Type, Args... > >inlinestatic
    size(const std::vector< Type, Args... > &cont) noexceptentt::basic_container< std::vector< Type, Args... > >inlinestatic
    begin(Container &cont)entt::basic_container< Container >inlinestatic
    cbegin(const Container &cont)entt::basic_container< Container >inlinestatic
    cend(const Container &cont)entt::basic_container< Container >inlinestatic
    end(Container &cont)entt::basic_container< Container >inlinestatic
    size(const Container &cont)entt::basic_container< Container >inlinestatic
    type typedefentt::meta_container_traits< std::vector< Type, Args... >, basic_container, basic_dynamic_container, basic_sequence_container, dynamic_sequence_container >
    diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4.html index 7e113fad8..c625468fc 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_sequence_container_traits< std::vector< Type, Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,20 +81,20 @@ $(function() { Inheritance diagram for entt::meta_sequence_container_traits< std::vector< Type, Args... > >:
    Inheritance graph
    - + - +
    [legend]
    Collaboration diagram for entt::meta_sequence_container_traits< std::vector< Type, Args... > >:
    Collaboration graph
    - + - +
    [legend]
    @@ -105,20 +105,20 @@ Additional Inherited Members using  - - - - - + + + + + - + - + - +
    type = std::vector< Type, Args... >
     Type of container.
     
    - Static Public Member Functions inherited from entt::basic_container< std::vector< Type, Args... > >
    static Container::size_type size (const std::vector< Type, Args... > &cont) noexcept
     Returns the size of the given container. More...
     
    static Container::iterator begin (std::vector< Type, Args... > &cont)
    - Static Public Member Functions inherited from entt::basic_container< Container >
    static Container::size_type size (const Container &cont)
     Returns the size of the given container. More...
     
    static Container::iterator begin (Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::const_iterator cbegin (const std::vector< Type, Args... > &cont)
    static Container::const_iterator cbegin (const Container &cont)
     Returns an iterator to the first element of the given container. More...
     
    static Container::iterator end (std::vector< Type, Args... > &cont)
    static Container::iterator end (Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    static Container::const_iterator cend (const std::vector< Type, Args... > &cont)
    static Container::const_iterator cend (const Container &cont)
     Returns an iterator past the last element of the given container. More...
     
    @@ -142,7 +142,7 @@ struct entt::meta_sequence_container_traits< std::vector< Type, Args... &g diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map index c88be65cf..90eca7b6a 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 index d59a1b1b1..78c3b0db9 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.md5 @@ -1 +1 @@ -84ba80225aa2c14adb3b5d840ce8c526 \ No newline at end of file +b31e1466ede8a127d434fa79b88f7f32 \ No newline at end of file diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png index 6cce9e9ce..c948a7391 100644 Binary files a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png and b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__coll__graph.png differ diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map index c88be65cf..90eca7b6a 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.map @@ -1,5 +1,5 @@ - + diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 index d59a1b1b1..78c3b0db9 100644 --- a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 +++ b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.md5 @@ -1 +1 @@ -84ba80225aa2c14adb3b5d840ce8c526 \ No newline at end of file +b31e1466ede8a127d434fa79b88f7f32 \ No newline at end of file diff --git a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png index 6cce9e9ce..c948a7391 100644 Binary files a/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png and b/structentt_1_1meta__sequence__container__traits_3_01std_1_1vector_3_01Type_00_01Args_8_8_8_01_4_01_4__inherit__graph.png differ diff --git a/structentt_1_1meta__template__traits.html b/structentt_1_1meta__template__traits.html index 825fa9c44..7551a2f10 100644 --- a/structentt_1_1meta__template__traits.html +++ b/structentt_1_1meta__template__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_template_traits< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,7 +86,7 @@ struct entt::meta_template_traits< typename > diff --git a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html index 73118416a..f52cc2945 100644 --- a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html index e54ae9fe1..ec631c226 100644 --- a/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html +++ b/structentt_1_1meta__template__traits_3_01Clazz_3_01Args_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::meta_template_traits< Clazz< Args... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -110,7 +110,7 @@ struct entt::meta_template_traits< Clazz< Args... > > diff --git a/structentt_1_1monostate-members.html b/structentt_1_1monostate-members.html index 939966352..78cabeb96 100644 --- a/structentt_1_1monostate-members.html +++ b/structentt_1_1monostate-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,12 +73,12 @@ $(function() {

    This is the complete list of members for entt::monostate< id_type >, including all inherited members.

    - - + +
    operator Type() const noexceptentt::monostate< id_type >inline
    operator=(Type val) const noexceptentt::monostate< id_type >inline
    operator Type() constentt::monostate< id_type >inline
    operator=(Type val) constentt::monostate< id_type >inline
    diff --git a/structentt_1_1monostate.html b/structentt_1_1monostate.html index 4edd7f579..a78fabb20 100644 --- a/structentt_1_1monostate.html +++ b/structentt_1_1monostate.html @@ -3,7 +3,7 @@ - + EnTT: entt::monostate< id_type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -81,14 +81,14 @@ $(function() { - - - - - - - - + + + + + + + +

    Public Member Functions

    template<typename Type >
    void operator= (Type val) const noexcept
     Assigns a value of a specific type to a given key. More...
     
    template<typename Type >
     operator Type () const noexcept
     Gets a value of a specific type for a given key. More...
     
    template<typename Type >
    void operator= (Type val) const
     Assigns a value of a specific type to a given key. More...
     
    template<typename Type >
     operator Type () const
     Gets a value of a specific type for a given key. More...
     

    Detailed Description

    template<id_type>
    @@ -100,8 +100,8 @@ struct entt::monostate< id_type >

    Definition at line 24 of file monostate.hpp.

    Member Function Documentation

    - -

    ◆ operator Type()

    + +

    ◆ operator Type()

    @@ -122,7 +122,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -140,8 +140,8 @@ template<typename Type >
    - -

    ◆ operator=()

    + +

    ◆ operator=()

    @@ -163,7 +163,7 @@ template<typename Type >
    -inlinenoexcept +inline
    @@ -192,7 +192,7 @@ template<typename Type >
    diff --git a/structentt_1_1null__t-members.html b/structentt_1_1null__t-members.html index a75425a35..7970bd550 100644 --- a/structentt_1_1null__t-members.html +++ b/structentt_1_1null__t-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,15 +73,16 @@ $(function() {

    This is the complete list of members for entt::null_t, including all inherited members.

    - - - - - + + + + + +
    operator Entity() const noexceptentt::null_tinline
    operator!=(const null_t &) const noexceptentt::null_tinline
    operator!=(const Entity &entity) const noexceptentt::null_tinline
    operator==(const null_t &) const noexceptentt::null_tinline
    operator==(const Entity &entity) const noexceptentt::null_tinline
    operator Entity() constentt::null_tinline
    operator!=([[maybe_unused]] const null_t other) constentt::null_tinline
    operator!=(const Entity entity) constentt::null_tinline
    operator==([[maybe_unused]] const null_t other) constentt::null_tinline
    operator==(const Entity entity) constentt::null_tinline
    operator|(const Entity entity) constentt::null_tinline
    diff --git a/structentt_1_1null__t.html b/structentt_1_1null__t.html index f400e1e5e..4d6baead6 100644 --- a/structentt_1_1null__t.html +++ b/structentt_1_1null__t.html @@ -3,7 +3,7 @@ - + EnTT: entt::null_t Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,33 +82,37 @@ $(function() { - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    template<typename Entity >
    constexpr operator Entity () const noexcept
     Converts the null object to identifiers of any type. More...
     
    constexpr bool operator== (const null_t &) const noexcept
     Compares two null objects. More...
     
    constexpr bool operator!= (const null_t &) const noexcept
     Compares two null objects. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity &entity) const noexcept
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity &entity) const noexcept
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr operator Entity () const
     Converts the null object to identifiers of any type. More...
     
    constexpr bool operator== ([[maybe_unused]] const null_t other) const
     Compares two null objects. More...
     
    constexpr bool operator!= ([[maybe_unused]] const null_t other) const
     Compares two null objects. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity) const
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity) const
     Compares a null object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr Entity operator| (const Entity entity) const
     Creates a null object from an entity identifier of any type. More...
     

    Detailed Description

    Null object for all entity identifiers.

    -

    Definition at line 99 of file entity.hpp.

    +

    Definition at line 147 of file entity.hpp.

    Member Function Documentation

    - -

    ◆ operator Entity()

    + +

    ◆ operator Entity()

    @@ -127,7 +131,7 @@ template<typename Entity >
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -139,14 +143,51 @@ template<typename Entity >
    -
    Returns
    The null representation for the given identifier.
    +
    Returns
    The null representation for the given type.
    -

    Definition at line 106 of file entity.hpp.

    +

    Definition at line 154 of file entity.hpp.

    - -

    ◆ operator!=() [1/2]

    + +

    ◆ operator!=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    constexpr bool entt::null_t::operator!= ([[maybe_unused] ] const null_t other) const
    +
    +inlineconstexpr
    +
    + +

    Compares two null objects.

    +
    Parameters
    + + +
    otherA null object.
    +
    +
    +
    Returns
    False in all cases.
    + +

    Definition at line 172 of file entity.hpp.

    + +
    +
    + +

    ◆ operator!=() [2/2]

    @@ -159,14 +200,14 @@ template<typename Entity >
    constexpr bool entt::null_t::operator!= ( - const Entity &  + const Entity  entity) const -inlineconstexprnoexcept +inlineconstexpr
    @@ -186,12 +227,12 @@ template<typename Entity >
    Returns
    True if the two elements differ, false otherwise.
    -

    Definition at line 144 of file entity.hpp.

    +

    Definition at line 194 of file entity.hpp.

    - -

    ◆ operator!=() [2/2]

    + +

    ◆ operator==() [1/2]

    @@ -200,29 +241,35 @@ template<typename Entity >
    - + - - + +
    constexpr bool entt::null_t::operator!= constexpr bool entt::null_t::operator== (const null_t)[[maybe_unused] ] const null_t other) const
    -inlineconstexprnoexcept +inlineconstexpr

    Compares two null objects.

    -
    Returns
    False in all cases.
    +
    Parameters
    + + +
    otherA null object.
    +
    +
    +
    Returns
    True in all cases.
    -

    Definition at line 122 of file entity.hpp.

    +

    Definition at line 163 of file entity.hpp.

    - -

    ◆ operator==() [1/2]

    + +

    ◆ operator==() [2/2]

    @@ -235,14 +282,14 @@ template<typename Entity >
    constexpr bool entt::null_t::operator== ( - const Entity &  + const Entity  entity) const -inlineconstexprnoexcept +inlineconstexpr
    @@ -262,38 +309,52 @@ template<typename Entity >
    Returns
    False if the two elements differ, true otherwise.
    -

    Definition at line 133 of file entity.hpp.

    +

    Definition at line 183 of file entity.hpp.

    - -

    ◆ operator==() [2/2]

    + +

    ◆ operator|()

    +
    +template<typename Entity >
    +inlineconstexpr
    - + - - + +
    constexpr bool entt::null_t::operator== constexpr Entity entt::null_t::operator| (const null_t)const Entity entity) const
    -inlineconstexprnoexcept
    -

    Compares two null objects.

    -
    Returns
    True in all cases.
    +

    Creates a null object from an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + +
    entityEntity identifier to turn into a null object.
    +
    +
    +
    Returns
    The null representation for the given identifier.
    -

    Definition at line 114 of file entity.hpp.

    +

    Definition at line 205 of file entity.hpp.

    @@ -303,7 +364,7 @@ template<typename Entity > diff --git a/structentt_1_1overloaded.html b/structentt_1_1overloaded.html index be9927ad3..56d5c7ec2 100644 --- a/structentt_1_1overloaded.html +++ b/structentt_1_1overloaded.html @@ -3,7 +3,7 @@ - + EnTT: entt::overloaded< Func > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::overloaded< Func >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::overloaded< Func >:
    Collaboration diagram for entt::overloaded< Func >:
    Collaboration graph
    - + @@ -112,7 +112,7 @@ struct entt::overloaded< Func >
    diff --git a/structentt_1_1packed__storage__policy.html b/structentt_1_1packed__storage__policy.html new file mode 100644 index 000000000..8b7c3b419 --- /dev/null +++ b/structentt_1_1packed__storage__policy.html @@ -0,0 +1,91 @@ + + + + + + + +EnTT: entt::packed_storage_policy Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::packed_storage_policy Struct Reference
    +
    +
    + +

    Packed storage policy, aimed at faster linear iteration. + More...

    + +

    #include <view.hpp>

    +

    Detailed Description

    +

    Packed storage policy, aimed at faster linear iteration.

    + +

    Definition at line 144 of file view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1packed__storage__policy__coll__graph.map b/structentt_1_1packed__storage__policy__coll__graph.map new file mode 100644 index 000000000..943af3ba0 --- /dev/null +++ b/structentt_1_1packed__storage__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1packed__storage__policy__coll__graph.md5 b/structentt_1_1packed__storage__policy__coll__graph.md5 new file mode 100644 index 000000000..9f43a7e67 --- /dev/null +++ b/structentt_1_1packed__storage__policy__coll__graph.md5 @@ -0,0 +1 @@ +f3c51de4bb7af6d8a51ac84372aa5955 \ No newline at end of file diff --git a/structentt_1_1packed__storage__policy__coll__graph.png b/structentt_1_1packed__storage__policy__coll__graph.png new file mode 100644 index 000000000..383d08d29 Binary files /dev/null and b/structentt_1_1packed__storage__policy__coll__graph.png differ diff --git a/structentt_1_1packed__storage__policy__inherit__graph.map b/structentt_1_1packed__storage__policy__inherit__graph.map new file mode 100644 index 000000000..943af3ba0 --- /dev/null +++ b/structentt_1_1packed__storage__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1packed__storage__policy__inherit__graph.md5 b/structentt_1_1packed__storage__policy__inherit__graph.md5 new file mode 100644 index 000000000..9f43a7e67 --- /dev/null +++ b/structentt_1_1packed__storage__policy__inherit__graph.md5 @@ -0,0 +1 @@ +f3c51de4bb7af6d8a51ac84372aa5955 \ No newline at end of file diff --git a/structentt_1_1packed__storage__policy__inherit__graph.png b/structentt_1_1packed__storage__policy__inherit__graph.png new file mode 100644 index 000000000..383d08d29 Binary files /dev/null and b/structentt_1_1packed__storage__policy__inherit__graph.png differ diff --git a/structentt_1_1poly__base-members.html b/structentt_1_1poly__base-members.html index c4572e4d4..11a1ed89c 100644 --- a/structentt_1_1poly__base-members.html +++ b/structentt_1_1poly__base-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/structentt_1_1poly__base.html b/structentt_1_1poly__base.html index 112c09435..24ac05257 100644 --- a/structentt_1_1poly__base.html +++ b/structentt_1_1poly__base.html @@ -3,7 +3,7 @@ - + EnTT: entt::poly_base< Poly > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -228,7 +228,7 @@ template<auto Member, typename... Args> diff --git a/structentt_1_1poly__inspector-members.html b/structentt_1_1poly__inspector-members.html index 244e98bbb..cb69bed6b 100644 --- a/structentt_1_1poly__inspector-members.html +++ b/structentt_1_1poly__inspector-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { diff --git a/structentt_1_1poly__inspector.html b/structentt_1_1poly__inspector.html index 51b42303d..cae409c9a 100644 --- a/structentt_1_1poly__inspector.html +++ b/structentt_1_1poly__inspector.html @@ -3,7 +3,7 @@ - + EnTT: entt::poly_inspector Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -204,7 +204,7 @@ template<class Type > diff --git a/structentt_1_1poly__storage__traits-members.html b/structentt_1_1poly__storage__traits-members.html index 56c6ee290..65fc18786 100644 --- a/structentt_1_1poly__storage__traits-members.html +++ b/structentt_1_1poly__storage__traits-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1poly__storage__traits.html b/structentt_1_1poly__storage__traits.html index de5a8f989..421920420 100644 --- a/structentt_1_1poly__storage__traits.html +++ b/structentt_1_1poly__storage__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::poly_storage_traits< Entity, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -93,7 +93,7 @@ struct entt::poly_storage_traits< Entity, typename >

    Defines the poly storage type associate with a given entity type.

    Template Parameters
    - +
    EntityA valid entity type (see entt_traits for more details).
    EntityA valid entity type (see entt_traits for more details).
    @@ -105,7 +105,7 @@ struct entt::poly_storage_traits< Entity, typename > diff --git a/structentt_1_1process__adaptor-members.html b/structentt_1_1process__adaptor-members.html index 0a84fcb8b..c0853f217 100644 --- a/structentt_1_1process__adaptor-members.html +++ b/structentt_1_1process__adaptor-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,23 +74,23 @@ $(function() {

    This is the complete list of members for entt::process_adaptor< Func, Delta >, including all inherited members.

    - - - - - - + + + + + + - - + + - +
    abort(const bool immediately=false)entt::process< process_adaptor< Func, Delta >, Delta >inline
    alive() const noexceptentt::process< process_adaptor< Func, Delta >, Delta >inline
    dead() const noexceptentt::process< process_adaptor< Func, Delta >, Delta >inline
    delta_type typedefentt::process< process_adaptor< Func, Delta >, Delta >
    fail() noexceptentt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    pause() noexceptentt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    paused() const noexceptentt::process< process_adaptor< Func, Delta >, Delta >inline
    alive() constentt::process< process_adaptor< Func, Delta >, Delta >inline
    delta_type typedefentt::process< process_adaptor< Func, Delta >, Delta >
    fail()entt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    finished() constentt::process< process_adaptor< Func, Delta >, Delta >inline
    pause()entt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    paused() constentt::process< process_adaptor< Func, Delta >, Delta >inline
    process_adaptor(Args &&... args)entt::process_adaptor< Func, Delta >inline
    rejected() const noexceptentt::process< process_adaptor< Func, Delta >, Delta >inline
    succeed() noexceptentt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    rejected() constentt::process< process_adaptor< Func, Delta >, Delta >inline
    succeed()entt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    tick(const Delta delta, void *data=nullptr)entt::process< process_adaptor< Func, Delta >, Delta >inline
    unpause() noexceptentt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    unpause()entt::process< process_adaptor< Func, Delta >, Delta >inlineprotected
    update(const Delta delta, void *data)entt::process_adaptor< Func, Delta >inline
    ~process()entt::process< process_adaptor< Func, Delta >, Delta >inlinevirtual
    diff --git a/structentt_1_1process__adaptor.html b/structentt_1_1process__adaptor.html index 0c6c3d372..32245f915 100644 --- a/structentt_1_1process__adaptor.html +++ b/structentt_1_1process__adaptor.html @@ -3,7 +3,7 @@ - + EnTT: entt::process_adaptor< Func, Delta > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,20 +82,20 @@ $(function() { Inheritance diagram for entt::process_adaptor< Func, Delta >:
    Inheritance graph
    - - + + - +
    [legend]
    Collaboration diagram for entt::process_adaptor< Func, Delta >:
    Collaboration graph
    - - + + - +
    [legend]
    @@ -116,18 +116,18 @@ virtual  - - - - - - - - - - - - + + + + + + + + + + + + @@ -140,18 +140,18 @@ using  - - - - - - - - - - - - + + + + + + + + + + + +
    void abort (const bool immediately=false)
     Aborts a process if it's still alive. More...
     
    bool alive () const noexcept
     Returns true if a process is either running or paused. More...
     
    bool dead () const noexcept
     Returns true if a process is already terminated. More...
     
    bool paused () const noexcept
     Returns true if a process is currently paused. More...
     
    bool rejected () const noexcept
     Returns true if a process terminated with errors. More...
     
    bool alive () const
     Returns true if a process is either running or paused. More...
     
    bool finished () const
     Returns true if a process is already terminated. More...
     
    bool paused () const
     Returns true if a process is currently paused. More...
     
    bool rejected () const
     Returns true if a process terminated with errors. More...
     
    void tick (const Delta delta, void *data=nullptr)
     Updates a process and its internal state if required. More...
     
     Type used to provide elapsed time.
     
    - Protected Member Functions inherited from entt::process< process_adaptor< Func, Delta >, Delta >
    void succeed () noexcept
     Terminates a process with success if it's still alive. More...
     
    void fail () noexcept
     Terminates a process with errors if it's still alive. More...
     
    void pause () noexcept
     Stops a process if it's in a running state. More...
     
    void unpause () noexcept
     Restarts a process if it's paused. More...
     
    void succeed ()
     Terminates a process with success if it's still alive. More...
     
    void fail ()
     Terminates a process with errors if it's still alive. More...
     
    void pause ()
     Stops a process if it's in a running state. More...
     
    void unpause ()
     Restarts a process if it's paused. More...
     

    Detailed Description

    template<typename Func, typename Delta>
    @@ -161,7 +161,9 @@ struct entt::process_adaptor< Func, Delta >

    Lambdas and functors can't be used directly with a scheduler for they are not properly defined processes with managed life cycles.
    This class helps in filling the gap and turning lambdas and functors into full featured processes usable by a scheduler.

    The signature of the function call operator should be equivalent to the following:

    -
    void(Delta delta, void *data, auto succeed, auto fail);
    +
    void(Delta delta, void *data, auto succeed, auto fail);
    +
    void succeed()
    Terminates a process with success if it's still alive.
    Definition: process.hpp:124
    +
    void fail()
    Terminates a process with errors if it's still alive.
    Definition: process.hpp:136

    Where:

  • src/entt/process/process.hpp
  • -
    entt::process< process_adaptor< Func, Delta >, Delta >::fail
    void fail() noexcept
    Terminates a process with errors if it's still alive.
    Definition: process.hpp:136
    -
    entt::process< process_adaptor< Func, Delta >, Delta >::succeed
    void succeed() noexcept
    Terminates a process with success if it's still alive.
    Definition: process.hpp:124
    diff --git a/structentt_1_1process__adaptor__coll__graph.map b/structentt_1_1process__adaptor__coll__graph.map index ba534acc1..21befefa8 100644 --- a/structentt_1_1process__adaptor__coll__graph.map +++ b/structentt_1_1process__adaptor__coll__graph.map @@ -1,5 +1,5 @@ - + - + diff --git a/structentt_1_1process__adaptor__coll__graph.md5 b/structentt_1_1process__adaptor__coll__graph.md5 index e77dcf82b..585a10188 100644 --- a/structentt_1_1process__adaptor__coll__graph.md5 +++ b/structentt_1_1process__adaptor__coll__graph.md5 @@ -1 +1 @@ -ba5f33d7962574368ed298030d988036 \ No newline at end of file +ad3286baff002038c0819c4aad17da30 \ No newline at end of file diff --git a/structentt_1_1process__adaptor__coll__graph.png b/structentt_1_1process__adaptor__coll__graph.png index af07571c4..1d034dafd 100644 Binary files a/structentt_1_1process__adaptor__coll__graph.png and b/structentt_1_1process__adaptor__coll__graph.png differ diff --git a/structentt_1_1process__adaptor__inherit__graph.map b/structentt_1_1process__adaptor__inherit__graph.map index ba534acc1..21befefa8 100644 --- a/structentt_1_1process__adaptor__inherit__graph.map +++ b/structentt_1_1process__adaptor__inherit__graph.map @@ -1,5 +1,5 @@ - + - + diff --git a/structentt_1_1process__adaptor__inherit__graph.md5 b/structentt_1_1process__adaptor__inherit__graph.md5 index e77dcf82b..585a10188 100644 --- a/structentt_1_1process__adaptor__inherit__graph.md5 +++ b/structentt_1_1process__adaptor__inherit__graph.md5 @@ -1 +1 @@ -ba5f33d7962574368ed298030d988036 \ No newline at end of file +ad3286baff002038c0819c4aad17da30 \ No newline at end of file diff --git a/structentt_1_1process__adaptor__inherit__graph.png b/structentt_1_1process__adaptor__inherit__graph.png index af07571c4..1d034dafd 100644 Binary files a/structentt_1_1process__adaptor__inherit__graph.png and b/structentt_1_1process__adaptor__inherit__graph.png differ diff --git a/structentt_1_1radix__sort-members.html b/structentt_1_1radix__sort-members.html index 9426edb4d..41e4ec174 100644 --- a/structentt_1_1radix__sort-members.html +++ b/structentt_1_1radix__sort-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1radix__sort.html b/structentt_1_1radix__sort.html index eb49e8365..7389dfe64 100644 --- a/structentt_1_1radix__sort.html +++ b/structentt_1_1radix__sort.html @@ -3,7 +3,7 @@ - + EnTT: entt::radix_sort< Bit, N > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -174,7 +174,7 @@ template<typename It , typename Getter = identity> diff --git a/structentt_1_1resource__cache-members.html b/structentt_1_1resource__cache-members.html index a160f0ed0..7df2be453 100644 --- a/structentt_1_1resource__cache-members.html +++ b/structentt_1_1resource__cache-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,11 +73,11 @@ $(function() {

    This is the complete list of members for entt::resource_cache< Resource >, including all inherited members.

    - + - + @@ -85,13 +85,13 @@ $(function() { - +
    clear() noexceptentt::resource_cache< Resource >inline
    clear()entt::resource_cache< Resource >inline
    contains(const id_type id) constentt::resource_cache< Resource >inline
    discard(const id_type id)entt::resource_cache< Resource >inline
    each(Func func) constentt::resource_cache< Resource >inline
    empty() const noexceptentt::resource_cache< Resource >inline
    empty() constentt::resource_cache< Resource >inline
    handle(const id_type id) constentt::resource_cache< Resource >inline
    load(const id_type id, Args &&... args)entt::resource_cache< Resource >inline
    operator=(resource_cache &&)=defaultentt::resource_cache< Resource >
    resource_cache()=defaultentt::resource_cache< Resource >
    resource_cache(resource_cache &&)=defaultentt::resource_cache< Resource >
    resource_type typedefentt::resource_cache< Resource >
    size() const noexceptentt::resource_cache< Resource >inline
    size() constentt::resource_cache< Resource >inline
    size_type typedefentt::resource_cache< Resource >
    temp(Args &&... args) constentt::resource_cache< Resource >inline
    diff --git a/structentt_1_1resource__cache.html b/structentt_1_1resource__cache.html index 00002b71b..24c352b09 100644 --- a/structentt_1_1resource__cache.html +++ b/structentt_1_1resource__cache.html @@ -3,7 +3,7 @@ - + EnTT: entt::resource_cache< Resource > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -104,28 +104,28 @@ Public Member Functions resource_cacheoperator= (resource_cache &&)=default  Default move assignment operator. More...
      -size_type size () const noexcept - Number of resources managed by a cache. More...
    -  -bool empty () const noexcept - Returns true if a cache contains no resources, false otherwise. More...
    -  -void clear () noexcept - Clears a cache and discards all its resources. More...
    -  +size_type size () const + Number of resources managed by a cache. More...
    +  +bool empty () const + Returns true if a cache contains no resources, false otherwise. More...
    +  +void clear () + Clears a cache and discards all its resources. More...
    +  template<typename Loader , typename... Args> -resource_handle< Resource > load (const id_type id, Args &&... args) +resource_handle< Resource > load (const id_type id, Args &&... args)  Loads the resource that corresponds to a given identifier. More...
      template<typename Loader , typename... Args> -resource_handle< Resource > reload (const id_type id, Args &&... args) +resource_handle< Resource > reload (const id_type id, Args &&... args)  Reloads a resource or loads it for the first time if not present. More...
      template<typename Loader , typename... Args> -resource_handle< Resource > temp (Args &&... args) const +resource_handle< Resource > temp (Args &&... args) const  Creates a temporary handle for a resource. More...
      -resource_handle< Resource > handle (const id_type id) const +resource_handle< Resource > handle (const id_type id) const  Creates a handle for a given resource identifier. More...
      bool contains (const id_type id) const @@ -154,8 +154,8 @@ struct entt::resource_cache< Resource >

    Definition at line 29 of file cache.hpp.

    Member Function Documentation

    - -

    ◆ clear()

    + +

    ◆ clear()

    @@ -174,7 +174,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -221,7 +221,7 @@ template<typename Resource >
    Returns
    True if the cache contains the resource, false otherwise.
    -

    Definition at line 178 of file cache.hpp.

    +

    Definition at line 176 of file cache.hpp.

    @@ -260,7 +260,7 @@ template<typename Resource > -

    Definition at line 190 of file cache.hpp.

    +

    Definition at line 188 of file cache.hpp.

    @@ -296,8 +296,10 @@ template<typename Func >

    The function object is invoked for each element. It is provided with either the resource identifier, the resource handle or both of them.
    The signature of the function must be equivalent to one of the following forms:

    void(const entt::id_type);
    -
    void(entt::resource_handle<Resource>);
    -
    void(const entt::id_type, entt::resource_handle<Resource>);
    +
    void(entt::resource_handle<Resource>);
    +
    void(const entt::id_type, entt::resource_handle<Resource>);
    +
    Shared resource handle.
    Definition: handle.hpp:28
    +
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    Template Parameters
    @@ -311,12 +313,12 @@ template<typename Func > -

    Definition at line 214 of file cache.hpp.

    +

    Definition at line 212 of file cache.hpp.

    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -335,7 +337,7 @@ template<typename Resource >
    FuncType of the function object to invoke.
    -inlinenoexcept +inline
    @@ -359,7 +361,7 @@ template<typename Resource >
    - + @@ -375,7 +377,7 @@ template<typename Resource >

    Creates a handle for a given resource identifier.

    A resource handle can be in a either valid or invalid state. In other terms, a resource handle is properly initialized with a resource if the cache contains the resource itself. Otherwise the returned handle is uninitialized and accessing it results in undefined behavior.

    -
    See also
    resource_handle
    +
    See also
    resource_handle
    Parameters
    resource_handle<Resource> entt::resource_cache< Resource >::handle resource_handle<Resource> entt::resource_cache< Resource >::handle ( const id_type  id)
    @@ -384,7 +386,7 @@ template<typename Resource >
    Returns
    A handle for the given resource.
    -

    Definition at line 165 of file cache.hpp.

    +

    Definition at line 163 of file cache.hpp.

    @@ -402,7 +404,7 @@ template<typename Loader , typename... Args> @@ -30,10 +30,10 @@
    idUnique resource identifier.
    - + @@ -495,7 +497,7 @@ template<typename Loader , typename... Args> +inline
    resource_handle<Resource> entt::resource_cache< Resource >::load resource_handle<Resource> entt::resource_cache< Resource >::load ( const id_type  id, - + @@ -541,12 +543,12 @@ template<typename Loader , typename... Args>
    Returns
    A handle for the given resource.
    -

    Definition at line 131 of file cache.hpp.

    +

    Definition at line 129 of file cache.hpp.

    - -

    ◆ size()

    + +

    ◆ size()

    @@ -565,7 +567,7 @@ template<typename Resource >
    resource_handle<Resource> entt::resource_cache< Resource >::reload resource_handle<Resource> entt::resource_cache< Resource >::reload ( const id_type  id,
    -inlinenoexcept
    @@ -591,7 +593,7 @@ template<typename Loader , typename... Args>
    - + @@ -622,7 +624,7 @@ template<typename Loader , typename... Args>
    Returns
    A handle for the given resource.
    -

    Definition at line 148 of file cache.hpp.

    +

    Definition at line 146 of file cache.hpp.

    @@ -630,11 +632,9 @@ template<typename Loader , typename... Args>
  • src/entt/resource/cache.hpp
  • -
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    Shared resource handle.
    Definition: handle.hpp:27
    diff --git a/structentt_1_1resource__handle-members.html b/structentt_1_1resource__handle-members.html index ad35810fb..c35c448f0 100644 --- a/structentt_1_1resource__handle-members.html +++ b/structentt_1_1resource__handle-members.html @@ -3,7 +3,7 @@ - +EnTT: Member List @@ -22,7 +22,7 @@ @@ -30,10 +30,10 @@
    resource_handle<Resource> entt::resource_cache< Resource >::temp resource_handle<Resource> entt::resource_cache< Resource >::temp ( Args &&...  args)
    EnTT -  3.7.0 +  3.8.0
    - + @@ -73,21 +73,21 @@ $(function() {

    This is the complete list of members for entt::resource_handle< Resource >, including all inherited members.

    - - - - - - - - - - - + + + + + + + + + + +
    get() const noexceptentt::resource_handle< Resource >inline
    get() noexceptentt::resource_handle< Resource >inline
    operator bool() const noexceptentt::resource_handle< Resource >inlineexplicit
    operator const Resource &() const noexceptentt::resource_handle< Resource >inline
    operator Resource &() noexceptentt::resource_handle< Resource >inline
    operator*() const noexceptentt::resource_handle< Resource >inline
    operator*() noexceptentt::resource_handle< Resource >inline
    operator->() const noexceptentt::resource_handle< Resource >inline
    operator->() noexceptentt::resource_handle< Resource >inline
    resource_handle() noexcept=defaultentt::resource_handle< Resource >
    resource_handle(std::shared_ptr< Resource > res) noexceptentt::resource_handle< Resource >inline
    get() constentt::resource_handle< Resource >inline
    get()entt::resource_handle< Resource >inline
    operator bool() constentt::resource_handle< Resource >inlineexplicit
    operator const Resource &() constentt::resource_handle< Resource >inline
    operator Resource &()entt::resource_handle< Resource >inline
    operator*() constentt::resource_handle< Resource >inline
    operator*()entt::resource_handle< Resource >inline
    operator->() constentt::resource_handle< Resource >inline
    operator->()entt::resource_handle< Resource >inline
    resource_handle()=defaultentt::resource_handle< Resource >
    resource_handle(std::shared_ptr< Resource > res)entt::resource_handle< Resource >inline
    diff --git a/structentt_1_1resource__handle.html b/structentt_1_1resource__handle.html index c6f70c6ec..cfbe37a3f 100644 --- a/structentt_1_1resource__handle.html +++ b/structentt_1_1resource__handle.html @@ -3,7 +3,7 @@ - + EnTT: entt::resource_handle< Resource > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    - + @@ -81,40 +81,40 @@ $(function() { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Public Member Functions

    resource_handle () noexcept=default
     Default constructor.
     
     resource_handle (std::shared_ptr< Resource > res) noexcept
     Creates a handle from a shared pointer, namely a resource. More...
     
    const Resource & get () const noexcept
     Gets a reference to the managed resource. More...
     
    Resource & get () noexcept
     Gets a reference to the managed resource. More...
     
     operator const Resource & () const noexcept
     Gets a reference to the managed resource. More...
     
     operator Resource & () noexcept
     Gets a reference to the managed resource. More...
     
    const Resource & operator* () const noexcept
     Gets a reference to the managed resource. More...
     
    Resource & operator* () noexcept
     Gets a reference to the managed resource. More...
     
    const Resource * operator-> () const noexcept
     Gets a pointer to the managed resource. More...
     
    Resource * operator-> () noexcept
     Gets a pointer to the managed resource. More...
     
     operator bool () const noexcept
     Returns true if a handle contains a resource, false otherwise. More...
     
    resource_handle ()=default
     Default constructor.
     
     resource_handle (std::shared_ptr< Resource > res)
     Creates a handle from a shared pointer, namely a resource. More...
     
    const Resource & get () const
     Gets a reference to the managed resource. More...
     
    Resource & get ()
     Gets a reference to the managed resource. More...
     
     operator const Resource & () const
     Gets a reference to the managed resource. More...
     
     operator Resource & ()
     Gets a reference to the managed resource. More...
     
    const Resource & operator* () const
     Gets a reference to the managed resource. More...
     
    Resource & operator* ()
     Gets a reference to the managed resource. More...
     
    const Resource * operator-> () const
     Gets a pointer to the managed resource. More...
     
    Resource * operator-> ()
     Gets a pointer to the managed resource. More...
     
     operator bool () const
     Returns true if a handle contains a resource, false otherwise. More...
     

    Detailed Description

    template<typename Resource>
    @@ -132,8 +132,8 @@ struct entt::resource_handle< Resource >

    Definition at line 27 of file handle.hpp.

    Constructor & Destructor Documentation

    - -

    ◆ resource_handle()

    + +

    ◆ resource_handle()

    @@ -153,7 +153,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -171,41 +171,8 @@ template<typename Resource >

    Member Function Documentation

    - -

    ◆ get() [1/2]

    - -
    -
    -
    -template<typename Resource >
    - - - - - -
    - - - - - - - -
    const Resource& entt::resource_handle< Resource >::get () const
    -
    -inlinenoexcept
    -
    - -

    Gets a reference to the managed resource.

    -
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    -
    Returns
    A reference to the managed resource.
    - -

    Definition at line 47 of file handle.hpp.

    - -
    -
    - -

    ◆ get() [2/2]

    + +

    ◆ get() [1/2]

    @@ -224,7 +191,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -237,8 +204,41 @@ template<typename Resource >
    - -

    ◆ operator bool()

    + +

    ◆ get() [2/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    const Resource& entt::resource_handle< Resource >::get () const
    +
    +inline
    +
    + +

    Gets a reference to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A reference to the managed resource.
    + +

    Definition at line 47 of file handle.hpp.

    + +
    +
    + +

    ◆ operator bool()

    @@ -257,7 +257,7 @@ template<typename Resource >
    -inlineexplicitnoexcept +inlineexplicit
    @@ -265,12 +265,12 @@ template<typename Resource >

    Returns true if a handle contains a resource, false otherwise.

    Returns
    True if the handle contains a resource, false otherwise.
    -

    Definition at line 100 of file handle.hpp.

    +

    Definition at line 99 of file handle.hpp.

    - -

    ◆ operator const Resource &()

    + +

    ◆ operator const Resource &()

    @@ -289,7 +289,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -302,8 +302,8 @@ template<typename Resource >
    - -

    ◆ operator Resource &()

    + +

    ◆ operator Resource &()

    @@ -322,7 +322,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -335,41 +335,8 @@ template<typename Resource >
    - -

    ◆ operator*() [1/2]

    - -
    -
    -
    -template<typename Resource >
    - - - - - -
    - - - - - - - -
    const Resource& entt::resource_handle< Resource >::operator* () const
    -
    -inlinenoexcept
    -
    - -

    Gets a reference to the managed resource.

    -
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    -
    Returns
    A reference to the managed resource.
    - -

    Definition at line 68 of file handle.hpp.

    - -
    -
    - -

    ◆ operator*() [2/2]

    + +

    ◆ operator*() [1/2]

    @@ -388,7 +355,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -401,8 +368,8 @@ template<typename Resource >
    - -

    ◆ operator->() [1/2]

    + +

    ◆ operator*() [2/2]

    @@ -413,7 +380,7 @@ template<typename Resource >
    - + @@ -421,21 +388,21 @@ template<typename Resource >
    const Resource* entt::resource_handle< Resource >::operator-> const Resource& entt::resource_handle< Resource >::operator* ( ) const
    -inlinenoexcept +inline
    -

    Gets a pointer to the managed resource.

    +

    Gets a reference to the managed resource.

    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    -
    Returns
    A pointer to the managed resource or nullptr if the handle contains no resource at all.
    +
    Returns
    A reference to the managed resource.
    -

    Definition at line 86 of file handle.hpp.

    +

    Definition at line 68 of file handle.hpp.

    - -

    ◆ operator->() [2/2]

    + +

    ◆ operator->() [1/2]

    @@ -454,7 +421,7 @@ template<typename Resource >
    -inlinenoexcept +inline
    @@ -463,7 +430,40 @@ template<typename Resource >
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    Returns
    A pointer to the managed resource or nullptr if the handle contains no resource at all.
    -

    Definition at line 92 of file handle.hpp.

    +

    Definition at line 91 of file handle.hpp.

    + + + + +

    ◆ operator->() [2/2]

    + +
    +
    +
    +template<typename Resource >
    + + + + + +
    + + + + + + + +
    const Resource* entt::resource_handle< Resource >::operator-> () const
    +
    +inline
    +
    + +

    Gets a pointer to the managed resource.

    +
    Warning
    The behavior is undefined if the handle doesn't contain a resource.
    +
    Returns
    A pointer to the managed resource or nullptr if the handle contains no resource at all.
    + +

    Definition at line 86 of file handle.hpp.

    @@ -474,7 +474,7 @@ template<typename Resource > diff --git a/structentt_1_1scoped__connection-members.html b/structentt_1_1scoped__connection-members.html index 216d868bb..2796dd532 100644 --- a/structentt_1_1scoped__connection-members.html +++ b/structentt_1_1scoped__connection-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,7 +73,7 @@ $(function() {

    This is the complete list of members for entt::scoped_connection, including all inherited members.

    - + @@ -84,7 +84,7 @@ $(function() {
    operator bool() const noexceptentt::scoped_connectioninlineexplicit
    operator bool() constentt::scoped_connectioninlineexplicit
    operator=(const scoped_connection &)=deleteentt::scoped_connection
    operator=(connection other)entt::scoped_connectioninline
    release()entt::scoped_connectioninline
    diff --git a/structentt_1_1scoped__connection.html b/structentt_1_1scoped__connection.html index 100765610..48bd5ab5d 100644 --- a/structentt_1_1scoped__connection.html +++ b/structentt_1_1scoped__connection.html @@ -3,7 +3,7 @@ - + EnTT: entt::scoped_connection Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -102,9 +102,9 @@ Public Member Functions scoped_connectionoperator= (connection other)  Acquires a connection. More...
      - operator bool () const noexcept - Checks whether a scoped connection is properly initialized. More...
    -  + operator bool () const + Checks whether a scoped connection is properly initialized. More...
    void release ()  Breaks the connection.
    @@ -154,8 +154,8 @@ void Member Function Documentation - -

    ◆ operator bool()

    + +

    ◆ operator bool()

    @@ -256,7 +256,7 @@ void  diff --git a/structentt_1_1service__locator-members.html b/structentt_1_1service__locator-members.html index 92b1294e2..a9f0f59b5 100644 --- a/structentt_1_1service__locator-members.html +++ b/structentt_1_1service__locator-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@
    - + @@ -73,9 +73,9 @@ $(function() {

    This is the complete list of members for entt::service_locator< Service >, including all inherited members.

    - - - + + + @@ -85,7 +85,7 @@ $(function() {
    empty() noexceptentt::service_locator< Service >inlinestatic
    get() noexceptentt::service_locator< Service >inlinestatic
    ref() noexceptentt::service_locator< Service >inlinestatic
    empty()entt::service_locator< Service >inlinestatic
    get()entt::service_locator< Service >inlinestatic
    ref()entt::service_locator< Service >inlinestatic
    reset()entt::service_locator< Service >inlinestatic
    service_locator()=deleteentt::service_locator< Service >
    service_type typedefentt::service_locator< Service >
    diff --git a/structentt_1_1service__locator.html b/structentt_1_1service__locator.html index 6a04b5dc9..5e973ee95 100644 --- a/structentt_1_1service__locator.html +++ b/structentt_1_1service__locator.html @@ -3,7 +3,7 @@ - + EnTT: entt::service_locator< Service > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -101,15 +101,15 @@ Public Member Functions - - - - - - - - - + + + + + + + + + @@ -137,8 +137,8 @@ struct entt::service_locator< Service >

    Definition at line 25 of file locator.hpp.

    Member Function Documentation

    - -

    ◆ empty()

    + +

    ◆ empty()

    @@ -157,7 +157,7 @@ template<typename Service >

    Static Public Member Functions

    static bool empty () noexcept
     Tests if a valid service implementation is set. More...
     
    static std::weak_ptr< Service > get () noexcept
     Returns a weak pointer to a service implementation, if any. More...
     
    static Service & ref () noexcept
     Returns a weak reference to a service implementation, if any. More...
     
    static bool empty ()
     Tests if a valid service implementation is set. More...
     
    static std::weak_ptr< Service > get ()
     Returns a weak pointer to a service implementation, if any. More...
     
    static Service & ref ()
     Returns a weak reference to a service implementation, if any. More...
     
    template<typename Impl = Service, typename... Args>
    static void set (Args &&... args)
     Sets or replaces a service. More...
    -inlinestaticnoexcept +inlinestatic
    @@ -169,8 +169,8 @@ template<typename Service >
    - -

    ◆ get()

    + +

    ◆ get()

    @@ -189,7 +189,7 @@ template<typename Service >
    -inlinestaticnoexcept +inlinestatic
    @@ -202,8 +202,8 @@ template<typename Service >
    - -

    ◆ ref()

    + +

    ◆ ref()

    @@ -222,7 +222,7 @@ template<typename Service >
    -inlinestaticnoexcept +inlinestatic
    @@ -359,7 +359,7 @@ template<typename Service >
    diff --git a/structentt_1_1size__of.html b/structentt_1_1size__of.html index 19979d649..a7a1a8ca8 100644 --- a/structentt_1_1size__of.html +++ b/structentt_1_1size__of.html @@ -3,7 +3,7 @@ - + EnTT: entt::size_of< Type, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::size_of< Type, typename >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::size_of< Type, typename >:
    Collaboration diagram for entt::size_of< Type, typename >:
    Collaboration graph
    - + @@ -106,14 +106,14 @@ struct entt::size_of< Type, typename >
    -

    Definition at line 70 of file type_traits.hpp.

    +

    Definition at line 71 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html index 1efa3c0be..6d5c1d4bd 100644 --- a/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html +++ b/structentt_1_1size__of_3_01Type_00_01std_1_1void__t_3_01decltype_07sizeof_07Type_08_08_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::size_of< Type, std::void_t< decltype(sizeof(Type))> > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::size_of< Type, std::void_t< decltype(sizeof(Type))> >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::size_of< Type, std::void_t< decltype(sizeof( Collaboration diagram for entt::size_of< Type, std::void_t< decltype(sizeof(Type))> >:
    Collaboration graph
    - + @@ -106,14 +106,14 @@ struct entt::size_of< Type, std::void_t< decltype(sizeof(Type))> > -

    Definition at line 75 of file type_traits.hpp.

    +

    Definition at line 76 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1skip__tombstone__policy-members.html b/structentt_1_1skip__tombstone__policy-members.html new file mode 100644 index 000000000..607d20ce3 --- /dev/null +++ b/structentt_1_1skip__tombstone__policy-members.html @@ -0,0 +1,83 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::skip_tombstone_policy Member List
    +
    +
    + +

    This is the complete list of members for entt::skip_tombstone_policy, including all inherited members.

    + + +
    operator()(const Entity entity) (defined in entt::skip_tombstone_policy)entt::skip_tombstone_policyinline
    + + + + diff --git a/structentt_1_1skip__tombstone__policy.html b/structentt_1_1skip__tombstone__policy.html new file mode 100644 index 000000000..2be62fb7a --- /dev/null +++ b/structentt_1_1skip__tombstone__policy.html @@ -0,0 +1,109 @@ + + + + + + + +EnTT: entt::skip_tombstone_policy Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::skip_tombstone_policy Struct Reference
    +
    +
    + +

    Tombstone aware iteration policy. + More...

    + +

    #include <utility.hpp>

    +
    +Inheritance diagram for entt::skip_tombstone_policy:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::skip_tombstone_policy:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    Tombstone aware iteration policy.

    + +

    Definition at line 64 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1skip__tombstone__policy__coll__graph.map b/structentt_1_1skip__tombstone__policy__coll__graph.map new file mode 100644 index 000000000..3c78146e3 --- /dev/null +++ b/structentt_1_1skip__tombstone__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1skip__tombstone__policy__coll__graph.md5 b/structentt_1_1skip__tombstone__policy__coll__graph.md5 new file mode 100644 index 000000000..9ed74622a --- /dev/null +++ b/structentt_1_1skip__tombstone__policy__coll__graph.md5 @@ -0,0 +1 @@ +c34b0fe334d297bf15da60312850f37d \ No newline at end of file diff --git a/structentt_1_1skip__tombstone__policy__coll__graph.png b/structentt_1_1skip__tombstone__policy__coll__graph.png new file mode 100644 index 000000000..4d1c54200 Binary files /dev/null and b/structentt_1_1skip__tombstone__policy__coll__graph.png differ diff --git a/structentt_1_1skip__tombstone__policy__inherit__graph.map b/structentt_1_1skip__tombstone__policy__inherit__graph.map new file mode 100644 index 000000000..3c78146e3 --- /dev/null +++ b/structentt_1_1skip__tombstone__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1skip__tombstone__policy__inherit__graph.md5 b/structentt_1_1skip__tombstone__policy__inherit__graph.md5 new file mode 100644 index 000000000..9ed74622a --- /dev/null +++ b/structentt_1_1skip__tombstone__policy__inherit__graph.md5 @@ -0,0 +1 @@ +c34b0fe334d297bf15da60312850f37d \ No newline at end of file diff --git a/structentt_1_1skip__tombstone__policy__inherit__graph.png b/structentt_1_1skip__tombstone__policy__inherit__graph.png new file mode 100644 index 000000000..4d1c54200 Binary files /dev/null and b/structentt_1_1skip__tombstone__policy__inherit__graph.png differ diff --git a/structentt_1_1stable__storage__policy.html b/structentt_1_1stable__storage__policy.html new file mode 100644 index 000000000..bfaff41c2 --- /dev/null +++ b/structentt_1_1stable__storage__policy.html @@ -0,0 +1,91 @@ + + + + + + + +EnTT: entt::stable_storage_policy Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::stable_storage_policy Struct Reference
    +
    +
    + +

    Stable storage policy, aimed at pointer stability. + More...

    + +

    #include <view.hpp>

    +

    Detailed Description

    +

    Stable storage policy, aimed at pointer stability.

    + +

    Definition at line 127 of file view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1stable__storage__policy__coll__graph.map b/structentt_1_1stable__storage__policy__coll__graph.map new file mode 100644 index 000000000..aabac82a6 --- /dev/null +++ b/structentt_1_1stable__storage__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1stable__storage__policy__coll__graph.md5 b/structentt_1_1stable__storage__policy__coll__graph.md5 new file mode 100644 index 000000000..d186f7365 --- /dev/null +++ b/structentt_1_1stable__storage__policy__coll__graph.md5 @@ -0,0 +1 @@ +6187a7583d196747657bbff54e4d8c92 \ No newline at end of file diff --git a/structentt_1_1stable__storage__policy__coll__graph.png b/structentt_1_1stable__storage__policy__coll__graph.png new file mode 100644 index 000000000..721f1625a Binary files /dev/null and b/structentt_1_1stable__storage__policy__coll__graph.png differ diff --git a/structentt_1_1stable__storage__policy__inherit__graph.map b/structentt_1_1stable__storage__policy__inherit__graph.map new file mode 100644 index 000000000..7b7a0d7aa --- /dev/null +++ b/structentt_1_1stable__storage__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1stable__storage__policy__inherit__graph.md5 b/structentt_1_1stable__storage__policy__inherit__graph.md5 new file mode 100644 index 000000000..390c0cdc7 --- /dev/null +++ b/structentt_1_1stable__storage__policy__inherit__graph.md5 @@ -0,0 +1 @@ +a58dc77f36e4df7f91d5a5122cd1462d \ No newline at end of file diff --git a/structentt_1_1stable__storage__policy__inherit__graph.png b/structentt_1_1stable__storage__policy__inherit__graph.png new file mode 100644 index 000000000..331858a45 Binary files /dev/null and b/structentt_1_1stable__storage__policy__inherit__graph.png differ diff --git a/structentt_1_1std__sort-members.html b/structentt_1_1std__sort-members.html index 84f244a33..e3828e3e5 100644 --- a/structentt_1_1std__sort-members.html +++ b/structentt_1_1std__sort-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1std__sort.html b/structentt_1_1std__sort.html index ea4de5d7c..683d43373 100644 --- a/structentt_1_1std__sort.html +++ b/structentt_1_1std__sort.html @@ -3,7 +3,7 @@ - + EnTT: entt::std_sort Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -171,7 +171,7 @@ template<typename It , typename Compare = std::less<>, typename... Arg diff --git a/structentt_1_1storage__adapter__mixin-members.html b/structentt_1_1storage__adapter__mixin-members.html index 1e405be21..1bf1a1432 100644 --- a/structentt_1_1storage__adapter__mixin-members.html +++ b/structentt_1_1storage__adapter__mixin-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,15 +73,15 @@ $(function() {

    This is the complete list of members for entt::storage_adapter_mixin< Type >, including all inherited members.

    - + - +
    emplace(basic_registry< entity_type > &, const entity_type entity, Args &&... args)entt::storage_adapter_mixin< Type >inline
    emplace(basic_registry< entity_type > &, const entity_type entt, Args &&... args)entt::storage_adapter_mixin< Type >inline
    entity_type typedefentt::storage_adapter_mixin< Type >
    insert(basic_registry< entity_type > &, It first, It last, Args &&... args)entt::storage_adapter_mixin< Type >inline
    patch(basic_registry< entity_type > &, const entity_type entity, Func &&... func)entt::storage_adapter_mixin< Type >inline
    patch(basic_registry< entity_type > &, const entity_type entt, Func &&... func)entt::storage_adapter_mixin< Type >inline
    value_type typedefentt::storage_adapter_mixin< Type >
    diff --git a/structentt_1_1storage__adapter__mixin.html b/structentt_1_1storage__adapter__mixin.html index de1fe4e83..725c0ae58 100644 --- a/structentt_1_1storage__adapter__mixin.html +++ b/structentt_1_1storage__adapter__mixin.html @@ -3,7 +3,7 @@ - + EnTT: entt::storage_adapter_mixin< Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -83,7 +83,7 @@ $(function() { Inheritance diagram for entt::storage_adapter_mixin< Type >:
    Inheritance graph
    - + @@ -92,7 +92,7 @@ Inheritance diagram for entt::storage_adapter_mixin< Type >:
    Collaboration diagram for entt::storage_adapter_mixin< Type >:
    Collaboration graph
    - + @@ -111,18 +111,18 @@ using 

    Public Member Functions

    -template<typename... Args> -decltype(auto) emplace (basic_registry< entity_type > &, const entity_type entity, Args &&... args) - Assigns entities to a storage. More...
    -  +template<typename... Args> +decltype(auto) emplace (basic_registry< entity_type > &, const entity_type entt, Args &&... args) + Assigns entities to a storage. More...
    +  template<typename It , typename... Args> void insert (basic_registry< entity_type > &, It first, It last, Args &&... args)  Assigns entities to a storage. More...
      -template<typename... Func> -decltype(auto) patch (basic_registry< entity_type > &, const entity_type entity, Func &&... func) - Patches the given instance for an entity. More...
    -  +template<typename... Func> +decltype(auto) patch (basic_registry< entity_type > &, const entity_type entt, Func &&... func) + Patches the given instance for an entity. More...

    Detailed Description

    template<typename Type>
    @@ -136,10 +136,10 @@ struct entt::storage_adapter_mixin< Type >

    -

    Definition at line 580 of file storage.hpp.

    +

    Definition at line 794 of file storage.hpp.

    Member Function Documentation

    - -

    ◆ emplace()

    + +

    ◆ emplace()

    @@ -161,7 +161,7 @@ template<typename... Args>
    const entity_type  - entity, + entt, @@ -191,14 +191,14 @@ template<typename... Args>
    Parameters
    - +
    entityA valid entity identifier.
    enttA valid entity identifier.
    argsParameters to use to initialize the object.
    Returns
    A reference to the newly created object.
    -

    Definition at line 596 of file storage.hpp.

    +

    Definition at line 813 of file storage.hpp.

    @@ -269,12 +269,12 @@ template<typename It , typename... Args> -

    Definition at line 611 of file storage.hpp.

    +

    Definition at line 828 of file storage.hpp.

    - -

    ◆ patch()

    + +

    ◆ patch()

    @@ -296,7 +296,7 @@ template<typename... Func>
    const entity_type  - entity, + entt, @@ -326,14 +326,14 @@ template<typename... Func>
    Parameters
    - +
    entityA valid entity identifier.
    enttA valid entity identifier.
    funcValid function objects.
    Returns
    A reference to the patched instance.
    -

    Definition at line 623 of file storage.hpp.

    +

    Definition at line 840 of file storage.hpp.

    @@ -343,7 +343,7 @@ template<typename... Func> diff --git a/structentt_1_1storage__traits-members.html b/structentt_1_1storage__traits-members.html index 532f09980..82724c700 100644 --- a/structentt_1_1storage__traits-members.html +++ b/structentt_1_1storage__traits-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1storage__traits.html b/structentt_1_1storage__traits.html index 49b8ef281..821906e85 100644 --- a/structentt_1_1storage__traits.html +++ b/structentt_1_1storage__traits.html @@ -3,7 +3,7 @@ - + EnTT: entt::storage_traits< Entity, Type, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -74,7 +74,7 @@ $(function() {
    -

    Defines the component-to-storage conversion. +

    Provides a common way to access certain properties of storage types. More...

    #include <storage.hpp>

    @@ -82,7 +82,7 @@ $(function() {

    Public Types

    -using storage_type = sigh_storage_mixin< basic_storage< Entity, Type > > +using storage_type = sigh_storage_mixin< basic_storage< Entity, Type > >  Resulting type after component-to-storage conversion.
      @@ -90,28 +90,23 @@ using 

    template<typename Entity, typename Type, typename = void>
    struct entt::storage_traits< Entity, Type, typename >

    -

    Defines the component-to-storage conversion.

    -

    Formally:

    - +

    Provides a common way to access certain properties of storage types.

    Template Parameters
    - - + +
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects assigned to the entities.
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects managed by the storage class.
    -

    Definition at line 792 of file storage.hpp.

    +

    Definition at line 1017 of file storage.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1storage__type__traits-members.html b/structentt_1_1storage__type__traits-members.html new file mode 100644 index 000000000..941cba636 --- /dev/null +++ b/structentt_1_1storage__type__traits-members.html @@ -0,0 +1,83 @@ + + + + + + + +EnTT: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::storage_type_traits< Entity, Type > Member List
    +
    +
    + +

    This is the complete list of members for entt::storage_type_traits< Entity, Type >, including all inherited members.

    + + +
    storage_policy typedefentt::storage_type_traits< Entity, Type >
    + + + + diff --git a/structentt_1_1storage__type__traits.html b/structentt_1_1storage__type__traits.html new file mode 100644 index 000000000..63070844a --- /dev/null +++ b/structentt_1_1storage__type__traits.html @@ -0,0 +1,112 @@ + + + + + + + +EnTT: entt::storage_type_traits< Entity, Type > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Types | +List of all members
    +
    +
    entt::storage_type_traits< Entity, Type > Struct Template Reference
    +
    +
    + +

    Provides a common way to access certain properties of component types. + More...

    + +

    #include <storage.hpp>

    + + + + + +

    +Public Types

    +using storage_policy = packed_storage_policy
     Storage policy.
     
    +

    Detailed Description

    +

    template<typename Entity, typename Type>
    +struct entt::storage_type_traits< Entity, Type >

    + +

    Provides a common way to access certain properties of component types.

    +
    Template Parameters
    + + + +
    EntityA valid entity type (see entt_traits for more details).
    TypeType of objects managed by the storage class.
    +
    +
    + +

    Definition at line 31 of file storage.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1swap__and__pop__policy.html b/structentt_1_1swap__and__pop__policy.html new file mode 100644 index 000000000..5aebf53f8 --- /dev/null +++ b/structentt_1_1swap__and__pop__policy.html @@ -0,0 +1,109 @@ + + + + + + + +EnTT: entt::swap_and_pop_policy Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    entt::swap_and_pop_policy Struct Reference
    +
    +
    + +

    Swap and pop deletion policy. + More...

    + +

    #include <sparse_set.hpp>

    +
    +Inheritance diagram for entt::swap_and_pop_policy:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for entt::swap_and_pop_policy:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    Swap and pop deletion policy.

    + +

    Definition at line 38 of file sparse_set.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1swap__and__pop__policy__coll__graph.map b/structentt_1_1swap__and__pop__policy__coll__graph.map new file mode 100644 index 000000000..4a5a1c1dc --- /dev/null +++ b/structentt_1_1swap__and__pop__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1swap__and__pop__policy__coll__graph.md5 b/structentt_1_1swap__and__pop__policy__coll__graph.md5 new file mode 100644 index 000000000..960dddb75 --- /dev/null +++ b/structentt_1_1swap__and__pop__policy__coll__graph.md5 @@ -0,0 +1 @@ +c5cea101c1fd008d136878c33ed17613 \ No newline at end of file diff --git a/structentt_1_1swap__and__pop__policy__coll__graph.png b/structentt_1_1swap__and__pop__policy__coll__graph.png new file mode 100644 index 000000000..26236fcd2 Binary files /dev/null and b/structentt_1_1swap__and__pop__policy__coll__graph.png differ diff --git a/structentt_1_1swap__and__pop__policy__inherit__graph.map b/structentt_1_1swap__and__pop__policy__inherit__graph.map new file mode 100644 index 000000000..4a5a1c1dc --- /dev/null +++ b/structentt_1_1swap__and__pop__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structentt_1_1swap__and__pop__policy__inherit__graph.md5 b/structentt_1_1swap__and__pop__policy__inherit__graph.md5 new file mode 100644 index 000000000..960dddb75 --- /dev/null +++ b/structentt_1_1swap__and__pop__policy__inherit__graph.md5 @@ -0,0 +1 @@ +c5cea101c1fd008d136878c33ed17613 \ No newline at end of file diff --git a/structentt_1_1swap__and__pop__policy__inherit__graph.png b/structentt_1_1swap__and__pop__policy__inherit__graph.png new file mode 100644 index 000000000..26236fcd2 Binary files /dev/null and b/structentt_1_1swap__and__pop__policy__inherit__graph.png differ diff --git a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html b/structentt_1_1tombstone__t-members.html similarity index 52% rename from structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html rename to structentt_1_1tombstone__t-members.html index 5837d1588..0a5a48604 100644 --- a/structentt_1_1entt__traits_3_01std_1_1uint32__t_01_4-members.html +++ b/structentt_1_1tombstone__t-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -62,27 +62,27 @@ $(function() {
    -
    entt::entt_traits< std::uint32_t > Member List
    +
    entt::tombstone_t Member List
    -

    This is the complete list of members for entt::entt_traits< std::uint32_t >, including all inherited members.

    +

    This is the complete list of members for entt::tombstone_t, including all inherited members.

    - - - - - - + + + + + +
    difference_type typedefentt::entt_traits< std::uint32_t >
    entity_maskentt::entt_traits< std::uint32_t >static
    entity_shiftentt::entt_traits< std::uint32_t >static
    entity_type typedefentt::entt_traits< std::uint32_t >
    version_maskentt::entt_traits< std::uint32_t >static
    version_type typedefentt::entt_traits< std::uint32_t >
    operator Entity() constentt::tombstone_tinline
    operator!=([[maybe_unused]] const tombstone_t other) constentt::tombstone_tinline
    operator!=(const Entity entity) constentt::tombstone_tinline
    operator==([[maybe_unused]] const tombstone_t other) constentt::tombstone_tinline
    operator==(const Entity entity) constentt::tombstone_tinline
    operator|(const Entity entity) constentt::tombstone_tinline
    diff --git a/structentt_1_1tombstone__t.html b/structentt_1_1tombstone__t.html new file mode 100644 index 000000000..97728bff6 --- /dev/null +++ b/structentt_1_1tombstone__t.html @@ -0,0 +1,370 @@ + + + + + + + +EnTT: entt::tombstone_t Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +Public Member Functions | +List of all members
    +
    +
    entt::tombstone_t Struct Reference
    +
    +
    + +

    Tombstone object for all entity identifiers.
    + + More...

    + +

    #include <entity.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<typename Entity >
    constexpr operator Entity () const
     Converts the tombstone object to identifiers of any type. More...
     
    constexpr bool operator== ([[maybe_unused]] const tombstone_t other) const
     Compares two tombstone objects. More...
     
    constexpr bool operator!= ([[maybe_unused]] const tombstone_t other) const
     Compares two tombstone objects. More...
     
    template<typename Entity >
    constexpr bool operator== (const Entity entity) const
     Compares a tombstone object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr bool operator!= (const Entity entity) const
     Compares a tombstone object and an entity identifier of any type. More...
     
    template<typename Entity >
    constexpr Entity operator| (const Entity entity) const
     Creates a tombstone object from an entity identifier of any type. More...
     
    +

    Detailed Description

    +

    Tombstone object for all entity identifiers.
    +

    + +

    Definition at line 238 of file entity.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator Entity()

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + +
    constexpr entt::tombstone_t::operator Entity () const
    +
    +inlineconstexpr
    +
    + +

    Converts the tombstone object to identifiers of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Returns
    The tombstone representation for the given type.
    + +

    Definition at line 245 of file entity.hpp.

    + +
    +
    + +

    ◆ operator!=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    constexpr bool entt::tombstone_t::operator!= ([[maybe_unused] ] const tombstone_t other) const
    +
    +inlineconstexpr
    +
    + +

    Compares two tombstone objects.

    +
    Parameters
    + + +
    otherA tombstone object.
    +
    +
    +
    Returns
    False in all cases.
    + +

    Definition at line 263 of file entity.hpp.

    + +
    +
    + +

    ◆ operator!=() [2/2]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + +
    constexpr bool entt::tombstone_t::operator!= (const Entity entity) const
    +
    +inlineconstexpr
    +
    + +

    Compares a tombstone object and an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + +
    entityEntity identifier with which to compare.
    +
    +
    +
    Returns
    True if the two elements differ, false otherwise.
    + +

    Definition at line 285 of file entity.hpp.

    + +
    +
    + +

    ◆ operator==() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    constexpr bool entt::tombstone_t::operator== ([[maybe_unused] ] const tombstone_t other) const
    +
    +inlineconstexpr
    +
    + +

    Compares two tombstone objects.

    +
    Parameters
    + + +
    otherA tombstone object.
    +
    +
    +
    Returns
    True in all cases.
    + +

    Definition at line 254 of file entity.hpp.

    + +
    +
    + +

    ◆ operator==() [2/2]

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + +
    constexpr bool entt::tombstone_t::operator== (const Entity entity) const
    +
    +inlineconstexpr
    +
    + +

    Compares a tombstone object and an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + +
    entityEntity identifier with which to compare.
    +
    +
    +
    Returns
    False if the two elements differ, true otherwise.
    + +

    Definition at line 274 of file entity.hpp.

    + +
    +
    + +

    ◆ operator|()

    + +
    +
    +
    +template<typename Entity >
    + + + + + +
    + + + + + + + + +
    constexpr Entity entt::tombstone_t::operator| (const Entity entity) const
    +
    +inlineconstexpr
    +
    + +

    Creates a tombstone object from an entity identifier of any type.

    +
    Template Parameters
    + + +
    EntityType of entity identifier.
    +
    +
    +
    Parameters
    + + +
    entityEntity identifier to turn into a tombstone object.
    +
    +
    +
    Returns
    The tombstone representation for the given identifier.
    + +

    Definition at line 296 of file entity.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structentt_1_1type__hash-members.html b/structentt_1_1type__hash-members.html index 41fc2f99c..c943b0a59 100644 --- a/structentt_1_1type__hash-members.html +++ b/structentt_1_1type__hash-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,12 +73,12 @@ $(function() {

    This is the complete list of members for entt::type_hash< Type, typename >, including all inherited members.

    - - + +
    operator id_type() const noexceptentt::type_hash< Type, typename >inline
    value() noexceptentt::type_hash< Type, typename >inlinestatic
    operator id_type() constentt::type_hash< Type, typename >inline
    value()entt::type_hash< Type, typename >inlinestatic
    diff --git a/structentt_1_1type__hash.html b/structentt_1_1type__hash.html index 2b4e791e1..9d8228ccb 100644 --- a/structentt_1_1type__hash.html +++ b/structentt_1_1type__hash.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_hash< Type, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,15 +82,15 @@ $(function() { - - - + + +

    Public Member Functions

    constexpr operator id_type () const noexcept
     Returns the numeric representation of a given type. More...
     
    constexpr operator id_type () const
     Returns the numeric representation of a given type. More...
     
    - - - + + +

    Static Public Member Functions

    static constexpr id_type value () noexcept
     Returns the numeric representation of a given type. More...
     
    static constexpr id_type value ()
     Returns the numeric representation of a given type. More...
     

    Detailed Description

    template<typename Type, typename = void>
    @@ -106,8 +106,8 @@ struct entt::type_hash< Type, typename >

    Definition at line 111 of file type_info.hpp.

    Member Function Documentation

    - -

    ◆ operator id_type()

    + +

    ◆ operator id_type()

    @@ -126,7 +126,7 @@ template<typename Type , typename = void>
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -138,8 +138,8 @@ template<typename Type , typename = void>
    - -

    ◆ value()

    + +

    ◆ value()

    @@ -158,7 +158,7 @@ template<typename Type , typename = void>
    -inlinestaticconstexprnoexcept +inlinestaticconstexpr
    @@ -176,7 +176,7 @@ template<typename Type , typename = void>
    diff --git a/structentt_1_1type__identity-members.html b/structentt_1_1type__identity-members.html index a8482fd50..6f18a8c65 100644 --- a/structentt_1_1type__identity-members.html +++ b/structentt_1_1type__identity-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__identity.html b/structentt_1_1type__identity.html index 8c9231cfd..a627b52f9 100644 --- a/structentt_1_1type__identity.html +++ b/structentt_1_1type__identity.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_identity< Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -99,14 +99,14 @@ struct entt::type_identity< Type > -

    Definition at line 50 of file type_traits.hpp.

    +

    Definition at line 51 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list-members.html b/structentt_1_1type__list-members.html index 71bcaf095..48d946265 100644 --- a/structentt_1_1type__list-members.html +++ b/structentt_1_1type__list-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/structentt_1_1type__list.html b/structentt_1_1type__list.html index bb0bf9a38..f2c7e8acb 100644 --- a/structentt_1_1type__list.html +++ b/structentt_1_1type__list.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list< Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -106,14 +106,14 @@ struct entt::type_list< Type > -

    Definition at line 127 of file type_traits.hpp.

    +

    Definition at line 128 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__cat.html b/structentt_1_1type__list__cat.html index 1976142c5..76f59e0cf 100644 --- a/structentt_1_1type__list__cat.html +++ b/structentt_1_1type__list__cat.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_cat<... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::type_list_cat<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 185 of file type_traits.hpp.

    +

    Definition at line 186 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html index 1beaba5df..7bc297c39 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_cat< type_list< Type... >, type_list< Other... >, List... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,14 +100,14 @@ struct entt::type_list_cat< type_list< Type... >, type_list< Other.. -

    Definition at line 203 of file type_traits.hpp.

    +

    Definition at line 204 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html index 861bb9e6f..c314497f1 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8b5f6e6ed6191612d6e0fe24c4ff408dc.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html index 9d9cc8ba3..2642431a8 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html index 1f83fe999..edc5ab098 100644 --- a/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__cat_3_01type__list_3_01Type_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_cat< type_list< Type... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,14 +98,14 @@ struct entt::type_list_cat< type_list< Type... > > -

    Definition at line 214 of file type_traits.hpp.

    +

    Definition at line 215 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__cat_3_4-members.html b/structentt_1_1type__list__cat_3_4-members.html index f3fa78b8e..9f3c66933 100644 --- a/structentt_1_1type__list__cat_3_4-members.html +++ b/structentt_1_1type__list__cat_3_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__cat_3_4.html b/structentt_1_1type__list__cat_3_4.html index 7f47af014..8ccd47c71 100644 --- a/structentt_1_1type__list__cat_3_4.html +++ b/structentt_1_1type__list__cat_3_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_cat<> Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,14 +89,14 @@ using 

    Detailed Description

    Concatenates multiple type lists.

    -

    Definition at line 190 of file type_traits.hpp.

    +

    Definition at line 191 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__contains.html b/structentt_1_1type__list__contains.html index bcaa46701..272f3326c 100644 --- a/structentt_1_1type__list__contains.html +++ b/structentt_1_1type__list__contains.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_contains< List, Type > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -86,14 +86,14 @@ struct entt::type_list_contains< List, Type > -

    Definition at line 272 of file type_traits.hpp.

    +

    Definition at line 273 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html b/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html index e82de03cc..c7db1ee39 100644 --- a/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html +++ b/structentt_1_1type__list__contains_3_01type__list_3_01Type_8_8_8_01_4_00_01Other_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_contains< type_list< Type... >, Other > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::type_list_contains< type_list< Type... >, Other >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::type_list_contains< type_list< Type... >, Collaboration diagram for entt::type_list_contains< type_list< Type... >, Other >:
    Collaboration graph
    - + @@ -106,14 +106,14 @@ struct entt::type_list_contains< type_list< Type... >, Other > -

    Definition at line 281 of file type_traits.hpp.

    +

    Definition at line 282 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__diff.html b/structentt_1_1type__list__diff.html index 74c99523d..242c689c4 100644 --- a/structentt_1_1type__list__diff.html +++ b/structentt_1_1type__list__diff.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_diff<... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::type_list_diff<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 295 of file type_traits.hpp.

    +

    Definition at line 296 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html index 26ef6e905..3e30e5b09 100644 --- a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html index c5b0045c2..dd90c0a5e 100644 --- a/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__diff_3_01type__list_3_01Type_8_8_8_01_4_00_01type__list_3_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_diff< type_list< Type... >, type_list< Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,7 +82,7 @@ $(function() {

    Public Types

    -using type = type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... > +using type = type_list_cat_t< std::conditional_t< type_list_contains_v< type_list< Other... >, Type >, type_list<>, type_list< Type > >... >  A type list that is the difference between the two type lists.
      @@ -99,14 +99,14 @@ struct entt::type_list_diff< type_list< Type... >, type_list< Other. -

    Definition at line 304 of file type_traits.hpp.

    +

    Definition at line 305 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__element.html b/structentt_1_1type__list__element.html index d08230db2..7a54e6590 100644 --- a/structentt_1_1type__list__element.html +++ b/structentt_1_1type__list__element.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_element< size_t, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::type_list_element< size_t, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 137 of file type_traits.hpp.

    +

    Definition at line 138 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html index ca9085f4f..e57832611 100644 --- a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html index b84e73122..5df1ab9ac 100644 --- a/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__element_3_010u_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_element< 0u, type_list< Type, Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -99,14 +99,14 @@ struct entt::type_list_element< 0u, type_list< Type, Other... > > -

    Definition at line 158 of file type_traits.hpp.

    +

    Definition at line 159 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html index f115fd5e1..f50763673 100644 --- a/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__element_3_01Index_00_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_element< Index, type_list< Type, Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::type_list_element< Index, type_list< Type, Other... > >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::type_list_element< Index, type_list< Type, O Collaboration diagram for entt::type_list_element< Index, type_list< Type, Other... > >:
    Collaboration graph
    - + @@ -107,14 +107,14 @@ struct entt::type_list_element< Index, type_list< Type, Other... > > -

    Definition at line 147 of file type_traits.hpp.

    +

    Definition at line 148 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__unique.html b/structentt_1_1type__list__unique.html index f75ff6c9b..fd308388b 100644 --- a/structentt_1_1type__list__unique.html +++ b/structentt_1_1type__list__unique.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_unique< typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::type_list_unique< typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 230 of file type_traits.hpp.

    +

    Definition at line 231 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html index d4ed6e345..93ba03d7e 100644 --- a/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html index c084e0894..305058005 100644 --- a/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1type__list__unique_3_01type__list_3_01Type_00_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_unique< type_list< Type, Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -99,14 +99,14 @@ struct entt::type_list_unique< type_list< Type, Other... > > -

    Definition at line 239 of file type_traits.hpp.

    +

    Definition at line 240 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__list__unique_3_01type__list_3_4_01_4-members.html b/structentt_1_1type__list__unique_3_01type__list_3_4_01_4-members.html index 81ecb568d..d8768e39d 100644 --- a/structentt_1_1type__list__unique_3_01type__list_3_4_01_4-members.html +++ b/structentt_1_1type__list__unique_3_01type__list_3_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1type__list__unique_3_01type__list_3_4_01_4.html b/structentt_1_1type__list__unique_3_01type__list_3_4_01_4.html index 8013e1d15..54cd9ba0b 100644 --- a/structentt_1_1type__list__unique_3_01type__list_3_4_01_4.html +++ b/structentt_1_1type__list__unique_3_01type__list_3_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_list_unique< type_list<> > Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,14 +89,14 @@ using 

    Detailed Description

    Removes duplicates types from a type list.

    -

    Definition at line 251 of file type_traits.hpp.

    +

    Definition at line 252 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1type__name-members.html b/structentt_1_1type__name-members.html index 6cdf2752c..0709c6dde 100644 --- a/structentt_1_1type__name-members.html +++ b/structentt_1_1type__name-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,12 +73,12 @@ $(function() {

    This is the complete list of members for entt::type_name< Type, typename >, including all inherited members.

    - - + +
    operator std::string_view() const noexceptentt::type_name< Type, typename >inline
    value() noexceptentt::type_name< Type, typename >inlinestatic
    operator std::string_view() constentt::type_name< Type, typename >inline
    value()entt::type_name< Type, typename >inlinestatic
    diff --git a/structentt_1_1type__name.html b/structentt_1_1type__name.html index 3225a2abf..ea2dffa58 100644 --- a/structentt_1_1type__name.html +++ b/structentt_1_1type__name.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_name< Type, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,15 +82,15 @@ $(function() { - - - + + +

    Public Member Functions

    constexpr operator std::string_view () const noexcept
     Returns the name of a given type. More...
     
    constexpr operator std::string_view () const
     Returns the name of a given type. More...
     
    - - - + + +

    Static Public Member Functions

    static constexpr std::string_view value () noexcept
     Returns the name of a given type. More...
     
    static constexpr std::string_view value ()
     Returns the name of a given type. More...
     

    Detailed Description

    template<typename Type, typename = void>
    @@ -106,8 +106,8 @@ struct entt::type_name< Type, typename >

    Definition at line 135 of file type_info.hpp.

    Member Function Documentation

    - -

    ◆ operator std::string_view()

    + +

    ◆ operator std::string_view()

    @@ -126,7 +126,7 @@ template<typename Type , typename = void>
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -138,8 +138,8 @@ template<typename Type , typename = void>
    - -

    ◆ value()

    + +

    ◆ value()

    @@ -158,7 +158,7 @@ template<typename Type , typename = void>
    -inlinestaticconstexprnoexcept +inlinestaticconstexpr
    @@ -176,7 +176,7 @@ template<typename Type , typename = void>
    diff --git a/structentt_1_1type__seq-members.html b/structentt_1_1type__seq-members.html index f078a85b4..2c596541a 100644 --- a/structentt_1_1type__seq-members.html +++ b/structentt_1_1type__seq-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -73,12 +73,12 @@ $(function() {

    This is the complete list of members for entt::type_seq< Type, typename >, including all inherited members.

    - - + +
    operator id_type() const noexceptentt::type_seq< Type, typename >inline
    value() noexceptentt::type_seq< Type, typename >inlinestatic
    operator id_type() constentt::type_seq< Type, typename >inline
    value()entt::type_seq< Type, typename >inlinestatic
    diff --git a/structentt_1_1type__seq.html b/structentt_1_1type__seq.html index b5bd77ed9..88a540d44 100644 --- a/structentt_1_1type__seq.html +++ b/structentt_1_1type__seq.html @@ -3,7 +3,7 @@ - + EnTT: entt::type_seq< Type, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,15 +82,15 @@ $(function() { - - - + + +

    Public Member Functions

    constexpr operator id_type () const noexcept
     Returns the sequential identifier of a given type. More...
     
    constexpr operator id_type () const
     Returns the sequential identifier of a given type. More...
     
    - - - + + +

    Static Public Member Functions

    static id_type value () noexcept
     Returns the sequential identifier of a given type. More...
     
    static id_type value ()
     Returns the sequential identifier of a given type. More...
     

    Detailed Description

    template<typename Type, typename = void>
    @@ -106,8 +106,8 @@ struct entt::type_seq< Type, typename >

    Definition at line 91 of file type_info.hpp.

    Member Function Documentation

    - -

    ◆ operator id_type()

    + +

    ◆ operator id_type()

    @@ -126,7 +126,7 @@ template<typename Type , typename = void>
    -inlineconstexprnoexcept +inlineconstexpr
    @@ -138,8 +138,8 @@ template<typename Type , typename = void>
    - -

    ◆ value()

    + +

    ◆ value()

    @@ -158,7 +158,7 @@ template<typename Type , typename = void>
    -inlinestaticnoexcept +inlinestatic
    @@ -176,7 +176,7 @@ template<typename Type , typename = void>
    diff --git a/structentt_1_1value__list-members.html b/structentt_1_1value__list-members.html index 1db386f81..75815fc02 100644 --- a/structentt_1_1value__list-members.html +++ b/structentt_1_1value__list-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -78,7 +78,7 @@ $(function() { diff --git a/structentt_1_1value__list.html b/structentt_1_1value__list.html index fd80a358a..ccde80162 100644 --- a/structentt_1_1value__list.html +++ b/structentt_1_1value__list.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list< Value > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -106,14 +106,14 @@ struct entt::value_list< Value > -

    Definition at line 323 of file type_traits.hpp.

    +

    Definition at line 324 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__cat.html b/structentt_1_1value__list__cat.html index 06b66815a..87609d92c 100644 --- a/structentt_1_1value__list__cat.html +++ b/structentt_1_1value__list__cat.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_cat<... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::value_list_cat<... >

    Primary template isn't defined on purpose.

    -

    Definition at line 381 of file type_traits.hpp.

    +

    Definition at line 382 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html index 97c589ad9..f2a076757 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8_8_8_01_4_00_01List_8_8_8_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_cat< value_list< Value... >, value_list< Other... >, List... > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -100,14 +100,14 @@ struct entt::value_list_cat< value_list< Value... >, value_list< Oth -

    Definition at line 399 of file type_traits.hpp.

    +

    Definition at line 400 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html index ccf8afca9..ab1e9d453 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_00_01value__list_3_01Other_8e855cf3b29535e1db146a56ae1f98de8.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html index 3c1260d8b..43fe7a4eb 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html index fdddc2137..aaa088537 100644 --- a/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__cat_3_01value__list_3_01Value_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_cat< value_list< Value... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -98,14 +98,14 @@ struct entt::value_list_cat< value_list< Value... > > -

    Definition at line 410 of file type_traits.hpp.

    +

    Definition at line 411 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__cat_3_4-members.html b/structentt_1_1value__list__cat_3_4-members.html index 77ad8410e..914bd2ebe 100644 --- a/structentt_1_1value__list__cat_3_4-members.html +++ b/structentt_1_1value__list__cat_3_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1value__list__cat_3_4.html b/structentt_1_1value__list__cat_3_4.html index 918bbcfd7..2b6dd3ab8 100644 --- a/structentt_1_1value__list__cat_3_4.html +++ b/structentt_1_1value__list__cat_3_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_cat<> Struct Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -89,14 +89,14 @@ using 

    Detailed Description

    Concatenates multiple value lists.

    -

    Definition at line 386 of file type_traits.hpp.

    +

    Definition at line 387 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__element.html b/structentt_1_1value__list__element.html index 8401a32bc..27fdf4e2b 100644 --- a/structentt_1_1value__list__element.html +++ b/structentt_1_1value__list__element.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_element< size_t, typename > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,14 +79,14 @@ struct entt::value_list_element< size_t, typename >

    Primary template isn't defined on purpose.

    -

    Definition at line 333 of file type_traits.hpp.

    +

    Definition at line 334 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html index 53891d657..6584ad3c3 100644 --- a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html +++ b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -77,7 +77,7 @@ $(function() { diff --git a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index 2f7305ca4..5d8a24f4e 100644 --- a/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__element_3_010u_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_element< 0u, value_list< Value, Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -99,14 +99,14 @@ struct entt::value_list_element< 0u, value_list< Value, Other... > > -

    Definition at line 354 of file type_traits.hpp.

    +

    Definition at line 355 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html b/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html index 4527423fc..d6fdcec81 100644 --- a/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html +++ b/structentt_1_1value__list__element_3_01Index_00_01value__list_3_01Value_00_01Other_8_8_8_01_4_01_4.html @@ -3,7 +3,7 @@ - + EnTT: entt::value_list_element< Index, value_list< Value, Other... > > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { Inheritance diagram for entt::value_list_element< Index, value_list< Value, Other... > >:
    Inheritance graph
    - + @@ -88,7 +88,7 @@ Inheritance diagram for entt::value_list_element< Index, value_list< Value Collaboration diagram for entt::value_list_element< Index, value_list< Value, Other... > >:
    Collaboration graph
    - + @@ -107,14 +107,14 @@ struct entt::value_list_element< Index, value_list< Value, Other... > & -

    Definition at line 343 of file type_traits.hpp.

    +

    Definition at line 344 of file type_traits.hpp.


    The documentation for this struct was generated from the following file: diff --git a/structentt_1_1y__combinator-members.html b/structentt_1_1y__combinator-members.html index 5ba892d12..6bbd6ad44 100644 --- a/structentt_1_1y__combinator-members.html +++ b/structentt_1_1y__combinator-members.html @@ -3,7 +3,7 @@ - + EnTT: Member List @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -79,7 +79,7 @@ $(function() { diff --git a/structentt_1_1y__combinator.html b/structentt_1_1y__combinator.html index b2efa56bb..d5ccfafe1 100644 --- a/structentt_1_1y__combinator.html +++ b/structentt_1_1y__combinator.html @@ -3,7 +3,7 @@ - + EnTT: entt::y_combinator< Func > Struct Template Reference @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -105,7 +105,7 @@ struct entt::y_combinator< Func > -

    Definition at line 71 of file utility.hpp.

    +

    Definition at line 72 of file utility.hpp.

    Constructor & Destructor Documentation

    ◆ y_combinator()

    @@ -141,7 +141,7 @@ template<class Func > -

    Definition at line 76 of file utility.hpp.

    +

    Definition at line 77 of file utility.hpp.

    @@ -189,7 +189,7 @@ template<class... Args>
    Returns
    Return value of the underlying function, if any.
    -

    Definition at line 93 of file utility.hpp.

    +

    Definition at line 94 of file utility.hpp.

    @@ -236,7 +236,7 @@ template<class... Args>
    Returns
    Return value of the underlying function, if any.
    -

    Definition at line 87 of file utility.hpp.

    +

    Definition at line 88 of file utility.hpp.

    @@ -246,7 +246,7 @@ template<class... Args> diff --git a/structpacked__storage__policy.html b/structpacked__storage__policy.html new file mode 100644 index 000000000..f77fa833d --- /dev/null +++ b/structpacked__storage__policy.html @@ -0,0 +1,87 @@ + + + + + + + +EnTT: packed_storage_policy Struct Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    packed_storage_policy Struct Reference
    +
    +
    + +

    Packed storage policy, aimed at faster linear iteration. + More...

    + +

    #include <view.hpp>

    +

    Detailed Description

    +

    Packed storage policy, aimed at faster linear iteration.

    + +

    Definition at line 137 of file view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structpacked__storage__policy__coll__graph.map b/structpacked__storage__policy__coll__graph.map new file mode 100644 index 000000000..73e27d3bd --- /dev/null +++ b/structpacked__storage__policy__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structpacked__storage__policy__coll__graph.md5 b/structpacked__storage__policy__coll__graph.md5 new file mode 100644 index 000000000..ae53e1427 --- /dev/null +++ b/structpacked__storage__policy__coll__graph.md5 @@ -0,0 +1 @@ +52992168ff6b90916f41466f6fdfbd9e \ No newline at end of file diff --git a/structpacked__storage__policy__coll__graph.png b/structpacked__storage__policy__coll__graph.png new file mode 100644 index 000000000..c10468bcf Binary files /dev/null and b/structpacked__storage__policy__coll__graph.png differ diff --git a/structpacked__storage__policy__inherit__graph.map b/structpacked__storage__policy__inherit__graph.map new file mode 100644 index 000000000..73e27d3bd --- /dev/null +++ b/structpacked__storage__policy__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structpacked__storage__policy__inherit__graph.md5 b/structpacked__storage__policy__inherit__graph.md5 new file mode 100644 index 000000000..ae53e1427 --- /dev/null +++ b/structpacked__storage__policy__inherit__graph.md5 @@ -0,0 +1 @@ +52992168ff6b90916f41466f6fdfbd9e \ No newline at end of file diff --git a/structpacked__storage__policy__inherit__graph.png b/structpacked__storage__policy__inherit__graph.png new file mode 100644 index 000000000..c10468bcf Binary files /dev/null and b/structpacked__storage__policy__inherit__graph.png differ diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html new file mode 100644 index 000000000..748f649d4 --- /dev/null +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: std::tuple_element< Index, entt::compressed_pair< First, Second > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::tuple_element< Index, entt::compressed_pair< First, Second > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for std::tuple_element< Index, entt::compressed_pair< First, Second > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for std::tuple_element< Index, entt::compressed_pair< First, Second > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<size_t Index, typename First, typename Second>
    +struct std::tuple_element< Index, entt::compressed_pair< First, Second > >

    + + +

    Definition at line 273 of file compressed_pair.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..5b5bf156c --- /dev/null +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..9af338dc7 --- /dev/null +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +14b3f1721a58ad7faf728080cf7bce73 \ No newline at end of file diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..158bed2e5 Binary files /dev/null and b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png differ diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map new file mode 100644 index 000000000..5b5bf156c --- /dev/null +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 new file mode 100644 index 000000000..9af338dc7 --- /dev/null +++ b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 @@ -0,0 +1 @@ +14b3f1721a58ad7faf728080cf7bce73 \ No newline at end of file diff --git a/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png new file mode 100644 index 000000000..158bed2e5 Binary files /dev/null and b/structstd_1_1tuple__element_3_01Index_00_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png differ diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html new file mode 100644 index 000000000..9d15eae84 --- /dev/null +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4.html @@ -0,0 +1,106 @@ + + + + + + + +EnTT: std::tuple_size< entt::compressed_pair< First, Second > > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    EnTT +  3.8.0 +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::tuple_size< entt::compressed_pair< First, Second > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for std::tuple_size< entt::compressed_pair< First, Second > >:
    +
    +
    Inheritance graph
    + + + + +
    [legend]
    +
    +Collaboration diagram for std::tuple_size< entt::compressed_pair< First, Second > >:
    +
    +
    Collaboration graph
    + + + + +
    [legend]
    +

    Detailed Description

    +

    template<typename First, typename Second>
    +struct std::tuple_size< entt::compressed_pair< First, Second > >

    + + +

    Definition at line 270 of file compressed_pair.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map new file mode 100644 index 000000000..941188973 --- /dev/null +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 new file mode 100644 index 000000000..b74af9eac --- /dev/null +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.md5 @@ -0,0 +1 @@ +057482c7c323afa44a05ce40104506c3 \ No newline at end of file diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png new file mode 100644 index 000000000..998450d81 Binary files /dev/null and b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__coll__graph.png differ diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map new file mode 100644 index 000000000..941188973 --- /dev/null +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 new file mode 100644 index 000000000..b74af9eac --- /dev/null +++ b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.md5 @@ -0,0 +1 @@ +057482c7c323afa44a05ce40104506c3 \ No newline at end of file diff --git a/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png new file mode 100644 index 000000000..998450d81 Binary files /dev/null and b/structstd_1_1tuple__size_3_01entt_1_1compressed__pair_3_01First_00_01Second_01_4_01_4__inherit__graph.png differ diff --git a/template_8hpp_source.html b/template_8hpp_source.html index 53deb5840..7ad8258e8 100644 --- a/template_8hpp_source.html +++ b/template_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/meta/template.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -95,14 +95,14 @@ $(function() {
    31 
    32 
    33 #endif
    - -
    entt::meta_class_template_tag
    Utility class to disambiguate class templates.
    Definition: template.hpp:13
    -
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:127
    -
    entt::meta_template_traits
    Traits class template to be specialized to enable support for meta template information.
    Definition: type_traits.hpp:16
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::meta_class_template_tag
    Utility class to disambiguate class templates.
    Definition: template.hpp:13
    +
    entt::meta_template_traits
    Traits class template to be specialized to enable support for meta template information.
    Definition: type_traits.hpp:16
    +
    entt::type_list
    A class to use to push around lists of types, nothing more.
    Definition: type_traits.hpp:128
    + diff --git a/type__info_8hpp_source.html b/type__info_8hpp_source.html index 36a733156..386cbd489 100644 --- a/type__info_8hpp_source.html +++ b/type__info_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/core/type_info.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -126,7 +126,7 @@ $(function() {
    60 template<typename Type, auto = stripped_type_name<Type>().find_first_of('.')>
    61 [[nodiscard]] static constexpr id_type type_hash(int) ENTT_NOEXCEPT {
    62  constexpr auto stripped = stripped_type_name<Type>();
    -
    63  constexpr auto value = hashed_string::value(stripped.data(), stripped.size());
    +
    63  constexpr auto value = hashed_string::value(stripped.data(), stripped.size());
    64  return value;
    65 }
    66 
    @@ -134,7 +134,7 @@ $(function() {
    68 template<typename Type>
    69 [[nodiscard]] static id_type type_hash(char) ENTT_NOEXCEPT {
    70  static const auto value = [](const auto stripped) {
    -
    71  return hashed_string::value(stripped.data(), stripped.size());
    +
    71  return hashed_string::value(stripped.data(), stripped.size());
    72  }(stripped_type_name<Type>());
    73  return value;
    74 }
    @@ -145,43 +145,43 @@ $(function() {
    79 
    90 template<typename Type, typename = void>
    91 struct ENTT_API type_seq final {
    -
    96  [[nodiscard]] static id_type value() ENTT_NOEXCEPT {
    +
    96  [[nodiscard]] static id_type value() ENTT_NOEXCEPT {
    97  static const id_type value = internal::type_seq::next();
    98  return value;
    99  }
    100 
    -
    102  [[nodiscard]] constexpr operator id_type() const ENTT_NOEXCEPT { return value(); }
    +
    102  [[nodiscard]] constexpr operator id_type() const ENTT_NOEXCEPT { return value(); }
    103 };
    104 
    105 
    110 template<typename Type, typename = void>
    111 struct type_hash final {
    116 #if defined ENTT_PRETTY_FUNCTION
    -
    117  [[nodiscard]] static constexpr id_type value() ENTT_NOEXCEPT {
    +
    117  [[nodiscard]] static constexpr id_type value() ENTT_NOEXCEPT {
    118  return internal::type_hash<Type>(0);
    119 #else
    -
    120  [[nodiscard]] static constexpr id_type value() ENTT_NOEXCEPT {
    -
    121  return type_seq<Type>::value();
    +
    120  [[nodiscard]] static constexpr id_type value() ENTT_NOEXCEPT {
    +
    121  return type_seq<Type>::value();
    122 #endif
    123  }
    124 
    -
    126  [[nodiscard]] constexpr operator id_type() const ENTT_NOEXCEPT { return value(); }
    +
    126  [[nodiscard]] constexpr operator id_type() const ENTT_NOEXCEPT { return value(); }
    127 };
    128 
    129 
    134 template<typename Type, typename = void>
    135 struct type_name final {
    -
    140  [[nodiscard]] static constexpr std::string_view value() ENTT_NOEXCEPT {
    +
    140  [[nodiscard]] static constexpr std::string_view value() ENTT_NOEXCEPT {
    141  return internal::type_name<Type>(0);
    142  }
    143 
    -
    145  [[nodiscard]] constexpr operator std::string_view() const ENTT_NOEXCEPT { return value(); }
    +
    145  [[nodiscard]] constexpr operator std::string_view() const ENTT_NOEXCEPT { return value(); }
    146 };
    147 
    148 
    150 class type_info final {
    151  template<typename>
    -
    152  friend type_info type_id() ENTT_NOEXCEPT;
    +
    152  friend type_info type_id() ENTT_NOEXCEPT;
    153 
    154  type_info(id_type seq_v, id_type hash_v, std::string_view name_v) ENTT_NOEXCEPT
    155  : seq_value{seq_v},
    @@ -190,34 +190,34 @@ $(function() {
    158  {}
    159 
    160 public:
    -
    162  type_info() ENTT_NOEXCEPT
    +
    162  type_info() ENTT_NOEXCEPT
    163  : type_info({}, {}, {})
    164  {}
    165 
    -
    167  type_info(const type_info &) ENTT_NOEXCEPT = default;
    -
    169  type_info(type_info &&) ENTT_NOEXCEPT = default;
    +
    167  type_info(const type_info &) ENTT_NOEXCEPT = default;
    +
    169  type_info(type_info &&) ENTT_NOEXCEPT = default;
    170 
    -
    175  type_info & operator=(const type_info &) ENTT_NOEXCEPT = default;
    +
    175  type_info & operator=(const type_info &) ENTT_NOEXCEPT = default;
    176 
    -
    181  type_info & operator=(type_info &&) ENTT_NOEXCEPT = default;
    +
    181  type_info & operator=(type_info &&) ENTT_NOEXCEPT = default;
    182 
    -
    187  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    187  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    188  return name_value.data() != nullptr;
    189  }
    190 
    -
    195  [[nodiscard]] id_type seq() const ENTT_NOEXCEPT {
    +
    195  [[nodiscard]] id_type seq() const ENTT_NOEXCEPT {
    196  return seq_value;
    197  }
    198 
    -
    203  [[nodiscard]] id_type hash() const ENTT_NOEXCEPT {
    +
    203  [[nodiscard]] id_type hash() const ENTT_NOEXCEPT {
    204  return hash_value;
    205  }
    206 
    -
    211  [[nodiscard]] std::string_view name() const ENTT_NOEXCEPT {
    +
    211  [[nodiscard]] std::string_view name() const ENTT_NOEXCEPT {
    212  return name_value;
    213  }
    214 
    -
    220  [[nodiscard]] bool operator==(const type_info &other) const ENTT_NOEXCEPT {
    +
    220  [[nodiscard]] bool operator==(const type_info &other) const ENTT_NOEXCEPT {
    221  return hash_value == other.hash_value;
    222  }
    223 
    @@ -228,17 +228,17 @@ $(function() {
    228 };
    229 
    230 
    -
    237 [[nodiscard]] inline bool operator!=(const type_info &lhs, const type_info &rhs) ENTT_NOEXCEPT {
    +
    237 [[nodiscard]] inline bool operator!=(const type_info &lhs, const type_info &rhs) ENTT_NOEXCEPT {
    238  return !(lhs == rhs);
    239 }
    240 
    241 
    247 template<typename Type>
    -
    248 [[nodiscard]] type_info type_id() ENTT_NOEXCEPT {
    +
    248 [[nodiscard]] type_info type_id() ENTT_NOEXCEPT {
    249  return type_info{
    -
    250  type_seq<std::remove_cv_t<std::remove_reference_t<Type>>>::value(),
    -
    251  type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value(),
    -
    252  type_name<std::remove_cv_t<std::remove_reference_t<Type>>>::value()
    +
    250  type_seq<std::remove_cv_t<std::remove_reference_t<Type>>>::value(),
    +
    251  type_hash<std::remove_cv_t<std::remove_reference_t<Type>>>::value(),
    +
    252  type_name<std::remove_cv_t<std::remove_reference_t<Type>>>::value()
    253  };
    254 }
    255 
    @@ -247,29 +247,29 @@ $(function() {
    258 
    259 
    260 #endif
    - -
    entt::type_seq::value
    static id_type value() noexcept
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    -
    entt::type_seq
    Type sequential identifier.
    Definition: type_info.hpp:91
    -
    entt::type_info::hash
    id_type hash() const noexcept
    Type hash.
    Definition: type_info.hpp:203
    -
    entt::type_hash
    Type hash.
    Definition: type_info.hpp:111
    -
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    -
    entt::type_info::operator==
    bool operator==(const type_info &other) const noexcept
    Compares the contents of two type info objects.
    Definition: type_info.hpp:220
    -
    entt::type_info::type_info
    type_info(const type_info &) noexcept=default
    Default copy constructor.
    -
    entt::type_id
    type_info type_id() noexcept
    Returns the type info object for a given type.
    Definition: type_info.hpp:248
    -
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::type_hash::value
    static constexpr id_type value() noexcept
    Returns the numeric representation of a given type.
    Definition: type_info.hpp:120
    -
    entt::basic_hashed_string::value
    constexpr hash_type value() const noexcept
    Returns the numeric representation of a hashed string.
    Definition: hashed_string.hpp:176
    -
    entt::type_info::type_info
    type_info(type_info &&) noexcept=default
    Default move constructor.
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::type_info::seq
    id_type seq() const noexcept
    Type sequential identifier.
    Definition: type_info.hpp:195
    -
    entt::type_info::type_info
    type_info() noexcept
    Default constructor.
    Definition: type_info.hpp:162
    -
    entt::type_name
    Type name.
    Definition: type_info.hpp:135
    -
    entt::type_name::value
    static constexpr std::string_view value() noexcept
    Returns the name of a given type.
    Definition: type_info.hpp:140
    +
    entt::basic_hashed_string::value
    constexpr hash_type value() const
    Returns the numeric representation of a hashed string.
    Definition: hashed_string.hpp:176
    entt::type_info
    Implementation specific information about a type.
    Definition: type_info.hpp:150
    -
    entt::type_info::name
    std::string_view name() const noexcept
    Type name.
    Definition: type_info.hpp:211
    +
    entt::type_info::name
    std::string_view name() const
    Type name.
    Definition: type_info.hpp:211
    +
    entt::type_info::hash
    id_type hash() const
    Type hash.
    Definition: type_info.hpp:203
    +
    entt::type_info::type_info
    type_info(const type_info &)=default
    Default copy constructor.
    +
    entt::type_info::operator==
    bool operator==(const type_info &other) const
    Compares the contents of two type info objects.
    Definition: type_info.hpp:220
    +
    entt::type_info::seq
    id_type seq() const
    Type sequential identifier.
    Definition: type_info.hpp:195
    +
    entt::type_info::type_info
    type_info(type_info &&)=default
    Default move constructor.
    +
    entt::type_info::type_info
    type_info()
    Default constructor.
    Definition: type_info.hpp:162
    +
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    +
    entt::id_type
    std::uint32_t id_type
    Alias declaration for type identifiers.
    Definition: fwd.hpp:17
    +
    entt::type_id
    type_info type_id()
    Returns the type info object for a given type.
    Definition: type_info.hpp:248
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::type_hash
    Type hash.
    Definition: type_info.hpp:111
    +
    entt::type_hash::value
    static constexpr id_type value()
    Returns the numeric representation of a given type.
    Definition: type_info.hpp:120
    +
    entt::type_name
    Type name.
    Definition: type_info.hpp:135
    +
    entt::type_name::value
    static constexpr std::string_view value()
    Returns the name of a given type.
    Definition: type_info.hpp:140
    +
    entt::type_seq
    Type sequential identifier.
    Definition: type_info.hpp:91
    +
    entt::type_seq::value
    static id_type value()
    Returns the sequential identifier of a given type.
    Definition: type_info.hpp:96
    + diff --git a/version_8h_source.html b/version_8h_source.html index 6170c4742..42a166bfb 100644 --- a/version_8h_source.html +++ b/version_8h_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/config/version.h Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -75,7 +75,7 @@ $(function() {
    3 
    4 
    5 #define ENTT_VERSION_MAJOR 3
    -
    6 #define ENTT_VERSION_MINOR 7
    +
    6 #define ENTT_VERSION_MINOR 8
    7 #define ENTT_VERSION_PATCH 0
    8 
    9 
    @@ -83,7 +83,7 @@ $(function() { diff --git a/view_8hpp_source.html b/view_8hpp_source.html index 334ac4678..c17500b36 100644 --- a/view_8hpp_source.html +++ b/view_8hpp_source.html @@ -3,7 +3,7 @@ - + EnTT: src/entt/entity/view.hpp Source File @@ -22,7 +22,7 @@
    EnTT -  3.7.0 +  3.8.0
    @@ -30,10 +30,10 @@ - + @@ -82,632 +82,678 @@ $(function() {
    10 #include <type_traits>
    11 #include "../config/config.h"
    12 #include "../core/type_traits.hpp"
    -
    13 #include "entity.hpp"
    -
    14 #include "fwd.hpp"
    -
    15 #include "sparse_set.hpp"
    -
    16 #include "storage.hpp"
    -
    17 #include "utility.hpp"
    -
    18 
    +
    13 #include "component.hpp"
    +
    14 #include "entity.hpp"
    +
    15 #include "fwd.hpp"
    +
    16 #include "sparse_set.hpp"
    +
    17 #include "storage.hpp"
    +
    18 #include "utility.hpp"
    19 
    -
    20 namespace entt {
    -
    21 
    +
    20 
    +
    21 namespace entt {
    22 
    -
    29 template<typename...>
    -
    30 class basic_view;
    +
    23 
    +
    30 namespace internal {
    31 
    32 
    -
    66 template<typename Entity, typename... Exclude, typename... Component>
    -
    67 class basic_view<Entity, exclude_t<Exclude...>, Component...> final {
    -
    68  template<typename Comp>
    -
    69  using storage_type = constness_as_t<typename storage_traits<Entity, std::remove_const_t<Comp>>::storage_type, Comp>;
    -
    70 
    -
    71  using unchecked_type = std::array<const basic_sparse_set<Entity> *, (sizeof...(Component) - 1)>;
    -
    72 
    -
    73  template<typename It>
    -
    74  class view_iterator final {
    -
    75  friend class basic_view<Entity, exclude_t<Exclude...>, Component...>;
    +
    33 template<typename Policy, typename It, std::size_t AllOf, std::size_t NoneOf>
    +
    34 class view_iterator final {
    +
    35  using basic_common_type = basic_sparse_set<typename std::iterator_traits<It>::value_type>;
    +
    36 
    +
    37  [[nodiscard]] bool valid() const {
    +
    38  const auto entt = *it;
    +
    39  return Policy::accept(entt)
    +
    40  && std::apply([entt](const auto *... curr) { return (curr->contains(entt) && ...); }, pools)
    +
    41  && std::apply([entt](const auto *... curr) { return (!curr->contains(entt) && ...); }, filter);
    +
    42  }
    +
    43 
    +
    44 public:
    +
    45  using iterator_type = It;
    +
    46  using difference_type = typename std::iterator_traits<It>::difference_type;
    +
    47  using value_type = typename std::iterator_traits<It>::value_type;
    +
    48  using pointer = typename std::iterator_traits<It>::pointer;
    +
    49  using reference = typename std::iterator_traits<It>::reference;
    +
    50  using iterator_category = std::bidirectional_iterator_tag;
    +
    51 
    +
    52  view_iterator() ENTT_NOEXCEPT
    +
    53  : first{},
    +
    54  last{},
    +
    55  it{},
    +
    56  pools{},
    +
    57  filter{}
    +
    58  {}
    +
    59 
    +
    60  view_iterator(It from, It to, It curr, std::array<const basic_common_type *, AllOf> all_of, std::array<const basic_common_type *, NoneOf> none_of) ENTT_NOEXCEPT
    +
    61  : first{from},
    +
    62  last{to},
    +
    63  it{curr},
    +
    64  pools{all_of},
    +
    65  filter{none_of}
    +
    66  {
    +
    67  if(it != last && !valid()) {
    +
    68  ++(*this);
    +
    69  }
    +
    70  }
    +
    71 
    +
    72  view_iterator & operator++() ENTT_NOEXCEPT {
    +
    73  while(++it != last && !valid());
    +
    74  return *this;
    +
    75  }
    76 
    -
    77  view_iterator(It from, It to, It curr, unchecked_type other, const std::tuple<const storage_type<Exclude> *...> &ignore) ENTT_NOEXCEPT
    -
    78  : first{from},
    -
    79  last{to},
    -
    80  it{curr},
    -
    81  unchecked{other},
    -
    82  filter{ignore}
    -
    83  {
    -
    84  if(it != last && !valid()) {
    -
    85  ++(*this);
    -
    86  }
    -
    87  }
    -
    88 
    -
    89  [[nodiscard]] bool valid() const {
    -
    90  const auto entt = *it;
    +
    77  view_iterator operator++(int) ENTT_NOEXCEPT {
    +
    78  view_iterator orig = *this;
    +
    79  return ++(*this), orig;
    +
    80  }
    +
    81 
    +
    82  view_iterator & operator--() ENTT_NOEXCEPT {
    +
    83  while(--it != first && !valid());
    +
    84  return *this;
    +
    85  }
    +
    86 
    +
    87  view_iterator operator--(int) ENTT_NOEXCEPT {
    +
    88  view_iterator orig = *this;
    +
    89  return operator--(), orig;
    +
    90  }
    91 
    -
    92  return std::all_of(unchecked.cbegin(), unchecked.cend(), [entt](const basic_sparse_set<Entity> *curr) { return curr->contains(entt); })
    -
    93  && !(std::get<const storage_type<Exclude> *>(filter)->contains(entt) || ...);
    -
    94  }
    +
    92  [[nodiscard]] bool operator==(const view_iterator &other) const ENTT_NOEXCEPT {
    +
    93  return other.it == it;
    +
    94  }
    95 
    -
    96  public:
    -
    97  using difference_type = typename std::iterator_traits<It>::difference_type;
    -
    98  using value_type = typename std::iterator_traits<It>::value_type;
    -
    99  using pointer = typename std::iterator_traits<It>::pointer;
    -
    100  using reference = typename std::iterator_traits<It>::reference;
    -
    101  using iterator_category = std::bidirectional_iterator_tag;
    -
    102 
    -
    103  view_iterator() ENTT_NOEXCEPT
    -
    104  : view_iterator{{}, {}, {}, {}, {}}
    -
    105  {}
    -
    106 
    -
    107  view_iterator & operator++() ENTT_NOEXCEPT {
    -
    108  while(++it != last && !valid());
    -
    109  return *this;
    -
    110  }
    -
    111 
    -
    112  view_iterator operator++(int) ENTT_NOEXCEPT {
    -
    113  view_iterator orig = *this;
    -
    114  return ++(*this), orig;
    -
    115  }
    +
    96  [[nodiscard]] bool operator!=(const view_iterator &other) const ENTT_NOEXCEPT {
    +
    97  return !(*this == other);
    +
    98  }
    +
    99 
    +
    100  [[nodiscard]] pointer operator->() const {
    +
    101  return &*it;
    +
    102  }
    +
    103 
    +
    104  [[nodiscard]] reference operator*() const {
    +
    105  return *operator->();
    +
    106  }
    +
    107 
    +
    108 private:
    +
    109  It first;
    +
    110  It last;
    +
    111  It it;
    +
    112  std::array<const basic_common_type *, AllOf> pools;
    +
    113  std::array<const basic_common_type *, NoneOf> filter;
    +
    114 };
    +
    115 
    116 
    -
    117  view_iterator & operator--() ENTT_NOEXCEPT {
    -
    118  while(--it != first && !valid());
    -
    119  return *this;
    -
    120  }
    -
    121 
    -
    122  view_iterator operator--(int) ENTT_NOEXCEPT {
    -
    123  view_iterator orig = *this;
    -
    124  return operator--(), orig;
    -
    125  }
    -
    126 
    -
    127  [[nodiscard]] bool operator==(const view_iterator &other) const ENTT_NOEXCEPT {
    -
    128  return other.it == it;
    -
    129  }
    -
    130 
    -
    131  [[nodiscard]] bool operator!=(const view_iterator &other) const ENTT_NOEXCEPT {
    -
    132  return !(*this == other);
    -
    133  }
    -
    134 
    -
    135  [[nodiscard]] pointer operator->() const {
    -
    136  return &*it;
    -
    137  }
    -
    138 
    -
    139  [[nodiscard]] reference operator*() const {
    -
    140  return *operator->();
    -
    141  }
    +
    117 }
    +
    118 
    +
    119 
    +
    127 struct stable_storage_policy {
    +
    132  template<typename Entity>
    +
    133  [[nodiscard]] static constexpr bool accept(const Entity entity) ENTT_NOEXCEPT {
    +
    134  return entity != tombstone;
    +
    135  }
    +
    140 };
    +
    141 
    142 
    -
    143  private:
    -
    144  It first;
    -
    145  It last;
    -
    146  It it;
    -
    147  unchecked_type unchecked;
    -
    148  std::tuple<const storage_type<Exclude> *...> filter;
    -
    149  };
    -
    150 
    -
    151  class iterable_view final {
    -
    152  friend class basic_view<Entity, exclude_t<Exclude...>, Component...>;
    -
    153 
    -
    154  template<typename It>
    -
    155  class iterable_view_iterator final {
    -
    156  friend class iterable_view;
    -
    157 
    -
    158  iterable_view_iterator(It from, const basic_view &parent) ENTT_NOEXCEPT
    -
    159  : it{from},
    -
    160  view{parent}
    -
    161  {}
    -
    162 
    -
    163  public:
    -
    164  using difference_type = std::ptrdiff_t;
    -
    165  using value_type = decltype(std::tuple_cat(std::tuple<Entity>{}, std::declval<basic_view>().get({})));
    -
    166  using pointer = void;
    -
    167  using reference = value_type;
    -
    168  using iterator_category = std::input_iterator_tag;
    +
    144 struct packed_storage_policy {
    +
    149  template<typename Entity>
    +
    150  [[nodiscard]] static constexpr bool accept(const Entity) ENTT_NOEXCEPT {
    +
    151  return true;
    +
    152  }
    +
    157 };
    +
    158 
    +
    159 
    +
    166 template<typename...>
    +
    167 class basic_view_impl;
    +
    168 
    169 
    -
    170  iterable_view_iterator & operator++() ENTT_NOEXCEPT {
    -
    171  return ++it, *this;
    -
    172  }
    +
    171 template<typename...>
    +
    172 struct basic_view;
    173 
    -
    174  iterable_view_iterator operator++(int) ENTT_NOEXCEPT {
    -
    175  iterable_view_iterator orig = *this;
    -
    176  return ++(*this), orig;
    -
    177  }
    -
    178 
    -
    179  [[nodiscard]] reference operator*() const ENTT_NOEXCEPT {
    -
    180  return std::tuple_cat(std::make_tuple(*it), view.get(*it));
    -
    181  }
    -
    182 
    -
    183  [[nodiscard]] bool operator==(const iterable_view_iterator &other) const ENTT_NOEXCEPT {
    -
    184  return other.it == it;
    -
    185  }
    -
    186 
    -
    187  [[nodiscard]] bool operator!=(const iterable_view_iterator &other) const ENTT_NOEXCEPT {
    -
    188  return !(*this == other);
    -
    189  }
    -
    190 
    -
    191  private:
    -
    192  It it;
    -
    193  const basic_view view;
    -
    194  };
    -
    195 
    -
    196  iterable_view(const basic_view &parent)
    -
    197  : view{parent}
    -
    198  {}
    -
    199 
    -
    200  public:
    -
    201  using iterator = iterable_view_iterator<view_iterator<typename basic_sparse_set<Entity>::iterator>>;
    -
    202  using reverse_iterator = iterable_view_iterator<view_iterator<typename basic_sparse_set<Entity>::reverse_iterator>>;
    -
    203 
    -
    204  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    -
    205  return { view.begin(), view };
    -
    206  }
    -
    207 
    -
    208  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    -
    209  return { view.end(), view };
    -
    210  }
    -
    211 
    -
    212  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    -
    213  return { view.rbegin(), view };
    -
    214  }
    +
    174 
    +
    209 template<typename Policy, typename Entity, typename... Exclude, typename... Component>
    +
    210 class basic_view_impl<Policy, Entity, exclude_t<Exclude...>, Component...> {
    +
    211  using basic_common_type = basic_sparse_set<Entity>;
    +
    212 
    +
    213  template<typename Comp>
    +
    214  using storage_type = constness_as_t<typename storage_traits<Entity, std::remove_const_t<Comp>>::storage_type, Comp>;
    215 
    -
    216  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    -
    217  return { view.rend(), view };
    -
    218  }
    -
    219 
    -
    220  private:
    -
    221  const basic_view view;
    -
    222  };
    -
    223 
    -
    224  [[nodiscard]] const basic_sparse_set<Entity> * candidate() const ENTT_NOEXCEPT {
    -
    225  return (std::min)({ static_cast<const basic_sparse_set<entity_type> *>(std::get<storage_type<Component> *>(pools))... }, [](const auto *lhs, const auto *rhs) {
    -
    226  return lhs->size() < rhs->size();
    -
    227  });
    -
    228  }
    +
    216  class iterable final {
    +
    217  template<typename It>
    +
    218  struct iterable_iterator final {
    +
    219  using difference_type = std::ptrdiff_t;
    +
    220  using value_type = decltype(std::tuple_cat(std::tuple<Entity>{}, std::declval<basic_view_impl>().get({})));
    +
    221  using pointer = void;
    +
    222  using reference = value_type;
    +
    223  using iterator_category = std::input_iterator_tag;
    +
    224 
    +
    225  iterable_iterator(It from, const basic_view_impl *parent) ENTT_NOEXCEPT
    +
    226  : it{from},
    +
    227  view{parent}
    +
    228  {}
    229 
    -
    230  [[nodiscard]] unchecked_type unchecked(const basic_sparse_set<Entity> *cpool) const {
    -
    231  std::size_t pos{};
    -
    232  unchecked_type other{};
    -
    233  (static_cast<void>(std::get<storage_type<Component> *>(pools) == cpool ? nullptr : (other[pos] = std::get<storage_type<Component> *>(pools), other[pos++])), ...);
    -
    234  return other;
    -
    235  }
    -
    236 
    -
    237  template<typename Comp, typename It>
    -
    238  [[nodiscard]] auto dispatch_get([[maybe_unused]] It &it, [[maybe_unused]] const Entity entt) const {
    -
    239  if constexpr(std::is_same_v<typename std::iterator_traits<It>::value_type, typename storage_type<Comp>::value_type>) {
    -
    240  return std::forward_as_tuple(*it);
    -
    241  } else {
    -
    242  return get_as_tuple(*std::get<storage_type<Comp> *>(pools), entt);
    -
    243  }
    -
    244  }
    -
    245 
    -
    246  template<typename Comp, typename Func>
    -
    247  void traverse(Func func) const {
    -
    248  if constexpr(std::is_void_v<decltype(std::get<storage_type<Comp> *>(pools)->get({}))>) {
    -
    249  for(const auto entt: static_cast<const basic_sparse_set<entity_type> &>(*std::get<storage_type<Comp> *>(pools))) {
    -
    250  if(((std::is_same_v<Comp, Component> || std::get<storage_type<Component> *>(pools)->contains(entt)) && ...)
    -
    251  && !(std::get<const storage_type<Exclude> *>(filter)->contains(entt) || ...))
    -
    252  {
    -
    253  if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    -
    254  std::apply(func, std::tuple_cat(std::make_tuple(entt), get(entt)));
    -
    255  } else {
    -
    256  std::apply(func, get(entt));
    -
    257  }
    -
    258  }
    -
    259  }
    -
    260  } else {
    -
    261  auto it = std::get<storage_type<Comp> *>(pools)->begin();
    -
    262 
    -
    263  for(const auto entt: static_cast<const basic_sparse_set<entity_type> &>(*std::get<storage_type<Comp> *>(pools))) {
    -
    264  if(((std::is_same_v<Comp, Component> || std::get<storage_type<Component> *>(pools)->contains(entt)) && ...)
    -
    265  && !(std::get<const storage_type<Exclude> *>(filter)->contains(entt) || ...))
    -
    266  {
    -
    267  if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view>().get({})))>) {
    -
    268  std::apply(func, std::tuple_cat(std::make_tuple(entt), dispatch_get<Component>(it, entt)...));
    -
    269  } else {
    -
    270  std::apply(func, std::tuple_cat(dispatch_get<Component>(it, entt)...));
    -
    271  }
    -
    272  }
    -
    273 
    -
    274  ++it;
    -
    275  }
    -
    276  }
    -
    277  }
    -
    278 
    -
    279 public:
    -
    281  using entity_type = Entity;
    -
    283  using size_type = std::size_t;
    -
    285  using iterator = view_iterator<typename basic_sparse_set<entity_type>::iterator>;
    -
    287  using reverse_iterator = view_iterator<typename basic_sparse_set<entity_type>::reverse_iterator>;
    -
    288 
    -
    290  basic_view() ENTT_NOEXCEPT
    -
    291  : view{}
    -
    292  {}
    -
    293 
    -
    299  basic_view(storage_type<Component> &... component, const storage_type<Exclude> &... epool) ENTT_NOEXCEPT
    -
    300  : pools{&component...},
    -
    301  filter{&epool...},
    -
    302  view{candidate()}
    -
    303  {}
    -
    304 
    -
    309  template<typename Comp>
    -
    310  void use() const ENTT_NOEXCEPT {
    -
    311  view = std::get<storage_type<Comp> *>(pools);
    -
    312  }
    -
    313 
    -
    318  [[nodiscard]] size_type size_hint() const ENTT_NOEXCEPT {
    -
    319  return view->size();
    -
    320  }
    -
    321 
    -
    330  [[nodiscard]] iterator begin() const {
    -
    331  return iterator{view->begin(), view->end(), view->begin(), unchecked(view), filter};
    -
    332  }
    -
    333 
    -
    343  [[nodiscard]] iterator end() const {
    -
    344  return iterator{view->begin(), view->end(), view->end(), unchecked(view), filter};
    -
    345  }
    -
    346 
    -
    355  [[nodiscard]] reverse_iterator rbegin() const {
    -
    356  return reverse_iterator{view->rbegin(), view->rend(), view->rbegin(), unchecked(view), filter};
    -
    357  }
    -
    358 
    -
    370  [[nodiscard]] reverse_iterator rend() const {
    -
    371  return reverse_iterator{view->rbegin(), view->rend(), view->rend(), unchecked(view), filter};
    -
    372  }
    -
    373 
    -
    379  [[nodiscard]] entity_type front() const {
    -
    380  const auto it = begin();
    -
    381  return it != end() ? *it : null;
    -
    382  }
    -
    383 
    -
    389  [[nodiscard]] entity_type back() const {
    -
    390  const auto it = rbegin();
    -
    391  return it != rend() ? *it : null;
    -
    392  }
    -
    393 
    -
    400  [[nodiscard]] iterator find(const entity_type entt) const {
    -
    401  const auto it = iterator{view->begin(), view->end(), view->find(entt), unchecked(view), filter};
    -
    402  return (it != end() && *it == entt) ? it : end();
    -
    403  }
    -
    404 
    -
    409  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    410  return view != nullptr;
    +
    230  iterable_iterator & operator++() ENTT_NOEXCEPT {
    +
    231  return ++it, *this;
    +
    232  }
    +
    233 
    +
    234  iterable_iterator operator++(int) ENTT_NOEXCEPT {
    +
    235  iterable_iterator orig = *this;
    +
    236  return ++(*this), orig;
    +
    237  }
    +
    238 
    +
    239  [[nodiscard]] reference operator*() const ENTT_NOEXCEPT {
    +
    240  return std::tuple_cat(std::make_tuple(*it), view->get(*it));
    +
    241  }
    +
    242 
    +
    243  [[nodiscard]] bool operator==(const iterable_iterator &other) const ENTT_NOEXCEPT {
    +
    244  return other.it == it;
    +
    245  }
    +
    246 
    +
    247  [[nodiscard]] bool operator!=(const iterable_iterator &other) const ENTT_NOEXCEPT {
    +
    248  return !(*this == other);
    +
    249  }
    +
    250 
    +
    251  private:
    +
    252  It it;
    +
    253  const basic_view_impl *view;
    +
    254  };
    +
    255 
    +
    256  public:
    +
    257  using iterator = iterable_iterator<internal::view_iterator<Policy, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>>;
    +
    258  using reverse_iterator = iterable_iterator<internal::view_iterator<Policy, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>>;
    +
    259 
    +
    260  iterable(const basic_view_impl &parent)
    +
    261  : view{parent}
    +
    262  {}
    +
    263 
    +
    264  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    +
    265  return { view.begin(), &view };
    +
    266  }
    +
    267 
    +
    268  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    +
    269  return { view.end(), &view };
    +
    270  }
    +
    271 
    +
    272  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    +
    273  return { view.rbegin(), &view };
    +
    274  }
    +
    275 
    +
    276  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    +
    277  return { view.rend(), &view };
    +
    278  }
    +
    279 
    +
    280  private:
    +
    281  const basic_view_impl view;
    +
    282  };
    +
    283 
    +
    284  [[nodiscard]] const auto * candidate() const ENTT_NOEXCEPT {
    +
    285  return (std::min)({ static_cast<const basic_common_type *>(std::get<storage_type<Component> *>(pools))... }, [](const auto *lhs, const auto *rhs) {
    +
    286  return lhs->size() < rhs->size();
    +
    287  });
    +
    288  }
    +
    289 
    +
    290  [[nodiscard]] auto pools_to_unchecked_array() const ENTT_NOEXCEPT {
    +
    291  std::size_t pos{};
    +
    292  std::array<const basic_common_type *, sizeof...(Component) - 1u> other{};
    +
    293  (static_cast<void>(std::get<storage_type<Component> *>(pools) == view ? void() : void(other[pos++] = std::get<storage_type<Component> *>(pools))), ...);
    +
    294  return other;
    +
    295  }
    +
    296 
    +
    297  [[nodiscard]] auto filter_to_array() const ENTT_NOEXCEPT {
    +
    298  return std::array<const basic_common_type *, sizeof...(Exclude)>{std::get<const storage_type<Exclude> *>(filter)...};
    +
    299  }
    +
    300 
    +
    301  template<typename Comp, typename It>
    +
    302  [[nodiscard]] auto dispatch_get([[maybe_unused]] It &it, [[maybe_unused]] const Entity entt) const {
    +
    303  if constexpr(std::is_same_v<typename std::iterator_traits<It>::value_type, typename storage_type<Comp>::value_type>) {
    +
    304  return std::forward_as_tuple(*it);
    +
    305  } else {
    +
    306  return get_as_tuple(*std::get<storage_type<Comp> *>(pools), entt);
    +
    307  }
    +
    308  }
    +
    309 
    +
    310  template<typename Comp, typename Func>
    +
    311  void traverse(Func func) const {
    +
    312  if constexpr(std::is_void_v<decltype(std::get<storage_type<Comp> *>(pools)->get({}))>) {
    +
    313  for(const auto entt: static_cast<const basic_common_type &>(*std::get<storage_type<Comp> *>(pools))) {
    +
    314  if(Policy::accept(entt) && ((std::is_same_v<Comp, Component> || std::get<storage_type<Component> *>(pools)->contains(entt)) && ...)
    +
    315  && (!std::get<const storage_type<Exclude> *>(filter)->contains(entt) && ...))
    +
    316  {
    +
    317  if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view_impl>().get({})))>) {
    +
    318  std::apply(func, std::tuple_cat(std::make_tuple(entt), get(entt)));
    +
    319  } else {
    +
    320  std::apply(func, get(entt));
    +
    321  }
    +
    322  }
    +
    323  }
    +
    324  } else {
    +
    325  auto it = std::get<storage_type<Comp> *>(pools)->begin();
    +
    326 
    +
    327  for(const auto entt: static_cast<const basic_common_type &>(*std::get<storage_type<Comp> *>(pools))) {
    +
    328  if(Policy::accept(entt) && ((std::is_same_v<Comp, Component> || std::get<storage_type<Component> *>(pools)->contains(entt)) && ...)
    +
    329  && (!std::get<const storage_type<Exclude> *>(filter)->contains(entt) && ...))
    +
    330  {
    +
    331  if constexpr(is_applicable_v<Func, decltype(std::tuple_cat(std::tuple<entity_type>{}, std::declval<basic_view_impl>().get({})))>) {
    +
    332  std::apply(func, std::tuple_cat(std::make_tuple(entt), dispatch_get<Component>(it, entt)...));
    +
    333  } else {
    +
    334  std::apply(func, std::tuple_cat(dispatch_get<Component>(it, entt)...));
    +
    335  }
    +
    336  }
    +
    337 
    +
    338  ++it;
    +
    339  }
    +
    340  }
    +
    341  }
    +
    342 
    +
    343 public:
    +
    345  using entity_type = Entity;
    +
    347  using size_type = std::size_t;
    +
    349  using iterator = internal::view_iterator<Policy, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>;
    +
    351  using reverse_iterator = internal::view_iterator<Policy, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)>;
    +
    353  using iterable_view = iterable;
    +
    354 
    +
    356  basic_view_impl() ENTT_NOEXCEPT
    +
    357  : view{}
    +
    358  {}
    +
    359 
    +
    365  basic_view_impl(storage_type<Component> &... component, const storage_type<Exclude> &... epool) ENTT_NOEXCEPT
    +
    366  : pools{&component...},
    +
    367  filter{&epool...},
    +
    368  view{candidate()}
    +
    369  {}
    +
    370 
    +
    375  template<typename Comp>
    +
    376  void use() const ENTT_NOEXCEPT {
    +
    377  view = std::get<storage_type<Comp> *>(pools);
    +
    378  }
    +
    379 
    +
    384  [[nodiscard]] size_type size_hint() const ENTT_NOEXCEPT {
    +
    385  return view->size();
    +
    386  }
    +
    387 
    +
    396  [[nodiscard]] iterator begin() const {
    +
    397  return iterator{view->begin(), view->end(), view->begin(), pools_to_unchecked_array(), filter_to_array()};
    +
    398  }
    +
    399 
    +
    409  [[nodiscard]] iterator end() const {
    +
    410  return iterator{view->begin(), view->end(), view->end(), pools_to_unchecked_array(), filter_to_array()};
    411  }
    412 
    -
    418  [[nodiscard]] bool contains(const entity_type entt) const {
    -
    419  return (std::get<storage_type<Component> *>(pools)->contains(entt) && ...) && !(std::get<const storage_type<Exclude> *>(filter)->contains(entt) || ...);
    -
    420  }
    -
    421 
    -
    437  template<typename... Comp>
    -
    438  [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entt) const {
    -
    439  ENTT_ASSERT(contains(entt));
    -
    440 
    -
    441  if constexpr(sizeof...(Comp) == 0) {
    -
    442  return std::tuple_cat(get_as_tuple(*std::get<storage_type<Component> *>(pools), entt)...);
    -
    443  } else if constexpr(sizeof...(Comp) == 1) {
    -
    444  return (std::get<storage_type<Comp> *>(pools)->get(entt), ...);
    -
    445  } else {
    -
    446  return std::tuple_cat(get_as_tuple(*std::get<storage_type<Comp> *>(pools), entt)...);
    -
    447  }
    +
    421  [[nodiscard]] reverse_iterator rbegin() const {
    +
    422  return reverse_iterator{view->rbegin(), view->rend(), view->rbegin(), pools_to_unchecked_array(), filter_to_array()};
    +
    423  }
    +
    424 
    +
    436  [[nodiscard]] reverse_iterator rend() const {
    +
    437  return reverse_iterator{view->rbegin(), view->rend(), view->rend(), pools_to_unchecked_array(), filter_to_array()};
    +
    438  }
    +
    439 
    +
    445  [[nodiscard]] entity_type front() const {
    +
    446  const auto it = begin();
    +
    447  return it != end() ? *it : null;
    448  }
    449 
    -
    472  template<typename Func>
    -
    473  void each(Func func) const {
    -
    474  ((std::get<storage_type<Component> *>(pools) == view ? traverse<Component>(std::move(func)) : void()), ...);
    -
    475  }
    -
    476 
    -
    493  template<typename Comp, typename Func>
    -
    494  void each(Func func) const {
    -
    495  use<Comp>();
    -
    496  traverse<Comp>(std::move(func));
    -
    497  }
    -
    498 
    -
    512  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    -
    513  return iterable_view{*this};
    +
    455  [[nodiscard]] entity_type back() const {
    +
    456  const auto it = rbegin();
    +
    457  return it != rend() ? *it : null;
    +
    458  }
    +
    459 
    +
    466  [[nodiscard]] iterator find(const entity_type entt) const {
    +
    467  const auto it = iterator{view->begin(), view->end(), view->find(entt), pools_to_unchecked_array(), filter_to_array()};
    +
    468  return (it != end() && *it == entt) ? it : end();
    +
    469  }
    +
    470 
    +
    475  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    476  return view != nullptr;
    +
    477  }
    +
    478 
    +
    484  [[nodiscard]] bool contains(const entity_type entt) const {
    +
    485  return (std::get<storage_type<Component> *>(pools)->contains(entt) && ...) && (!std::get<const storage_type<Exclude> *>(filter)->contains(entt) && ...);
    +
    486  }
    +
    487 
    +
    503  template<typename... Comp>
    +
    504  [[nodiscard]] decltype(auto) get([[maybe_unused]] const entity_type entt) const {
    +
    505  ENTT_ASSERT(contains(entt), "View does not contain entity");
    +
    506 
    +
    507  if constexpr(sizeof...(Comp) == 0) {
    +
    508  return std::tuple_cat(get_as_tuple(*std::get<storage_type<Component> *>(pools), entt)...);
    +
    509  } else if constexpr(sizeof...(Comp) == 1) {
    +
    510  return (std::get<storage_type<Comp> *>(pools)->get(entt), ...);
    +
    511  } else {
    +
    512  return std::tuple_cat(get_as_tuple(*std::get<storage_type<Comp> *>(pools), entt)...);
    +
    513  }
    514  }
    515 
    -
    530  template<typename Comp>
    -
    531  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    -
    532  use<Comp>();
    -
    533  return iterable_view{*this};
    -
    534  }
    -
    535 
    -
    545  template<typename Id, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    -
    546  friend auto operator|(const basic_view<Id, exclude_t<ELhs...>, CLhs...> &, const basic_view<Id, exclude_t<ERhs...>, CRhs...> &);
    -
    547 
    -
    548 private:
    -
    549  const std::tuple<storage_type<Component> *...> pools;
    -
    550  const std::tuple<const storage_type<Exclude> *...> filter;
    -
    551  mutable const basic_sparse_set<entity_type> *view;
    -
    552 };
    -
    553 
    -
    554 
    -
    586 template<typename Entity, typename Component>
    -
    587 class basic_view<Entity, exclude_t<>, Component> final {
    -
    588  using storage_type = constness_as_t<typename storage_traits<Entity, std::remove_const_t<Component>>::storage_type, Component>;
    -
    589 
    -
    590  class iterable_view {
    -
    591  friend class basic_view<Entity, exclude_t<>, Component>;
    -
    592 
    -
    593  template<typename... It>
    -
    594  class iterable_view_iterator {
    -
    595  friend class iterable_view;
    -
    596 
    -
    597  template<typename... Discard>
    -
    598  iterable_view_iterator(It... from, Discard...) ENTT_NOEXCEPT
    -
    599  : it{from...}
    -
    600  {}
    -
    601 
    -
    602  public:
    -
    603  using difference_type = std::ptrdiff_t;
    -
    604  using value_type = decltype(std::tuple_cat(std::tuple<Entity>{}, std::declval<basic_view>().get({})));
    -
    605  using pointer = void;
    -
    606  using reference = value_type;
    -
    607  using iterator_category = std::input_iterator_tag;
    -
    608 
    -
    609  iterable_view_iterator & operator++() ENTT_NOEXCEPT {
    -
    610  return (++std::get<It>(it), ...), *this;
    -
    611  }
    -
    612 
    -
    613  iterable_view_iterator operator++(int) ENTT_NOEXCEPT {
    -
    614  iterable_view_iterator orig = *this;
    -
    615  return ++(*this), orig;
    -
    616  }
    -
    617 
    -
    618  [[nodiscard]] reference operator*() const ENTT_NOEXCEPT {
    -
    619  return { *std::get<It>(it)... };
    -
    620  }
    -
    621 
    -
    622  [[nodiscard]] bool operator==(const iterable_view_iterator &other) const ENTT_NOEXCEPT {
    -
    623  return std::get<0>(other.it) == std::get<0>(it);
    -
    624  }
    -
    625 
    -
    626  [[nodiscard]] bool operator!=(const iterable_view_iterator &other) const ENTT_NOEXCEPT {
    -
    627  return !(*this == other);
    -
    628  }
    -
    629 
    -
    630  private:
    -
    631  std::tuple<It...> it;
    -
    632  };
    -
    633 
    -
    634  iterable_view(storage_type &ref)
    -
    635  : pool{&ref}
    -
    636  {}
    -
    637 
    -
    638  public:
    -
    639  using iterator = std::conditional_t<
    -
    640  std::is_void_v<decltype(std::declval<storage_type>().get({}))>,
    -
    641  iterable_view_iterator<typename basic_sparse_set<Entity>::iterator>,
    -
    642  iterable_view_iterator<typename basic_sparse_set<Entity>::iterator, decltype(std::declval<storage_type>().begin())>
    -
    643  >;
    -
    644  using reverse_iterator = std::conditional_t<
    -
    645  std::is_void_v<decltype(std::declval<storage_type>().get({}))>,
    -
    646  iterable_view_iterator<typename basic_sparse_set<Entity>::reverse_iterator>,
    -
    647  iterable_view_iterator<typename basic_sparse_set<Entity>::reverse_iterator, decltype(std::declval<storage_type>().rbegin())>
    -
    648  >;
    -
    649 
    -
    650  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    -
    651  return iterator{pool->basic_sparse_set<entity_type>::begin(), pool->begin()};
    -
    652  }
    -
    653 
    -
    654  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    -
    655  return iterator{pool->basic_sparse_set<entity_type>::end(), pool->end()};
    -
    656  }
    -
    657 
    -
    658  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    -
    659  return reverse_iterator{pool->basic_sparse_set<entity_type>::rbegin(), pool->rbegin()};
    -
    660  }
    +
    538  template<typename Func>
    +
    539  void each(Func func) const {
    +
    540  ((std::get<storage_type<Component> *>(pools) == view ? traverse<Component>(std::move(func)) : void()), ...);
    +
    541  }
    +
    542 
    +
    557  template<typename Comp, typename Func>
    +
    558  void each(Func func) const {
    +
    559  use<Comp>();
    +
    560  traverse<Comp>(std::move(func));
    +
    561  }
    +
    562 
    +
    576  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    +
    577  return iterable_view{*this};
    +
    578  }
    +
    579 
    +
    592  template<typename Comp>
    +
    593  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    +
    594  use<Comp>();
    +
    595  return iterable_view{*this};
    +
    596  }
    +
    597 
    +
    607  template<typename Id, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    +
    608  friend auto operator|(const basic_view<Id, exclude_t<ELhs...>, CLhs...> &, const basic_view<Id, exclude_t<ERhs...>, CRhs...> &);
    +
    609 
    +
    610 private:
    +
    611  const std::tuple<storage_type<Component> *...> pools;
    +
    612  const std::tuple<const storage_type<Exclude> *...> filter;
    +
    613  mutable const basic_common_type *view;
    +
    614 };
    +
    615 
    +
    616 
    +
    648 template<typename Entity, typename Component>
    +
    649 class basic_view_impl<packed_storage_policy, Entity, exclude_t<>, Component> {
    +
    650  using basic_common_type = basic_sparse_set<Entity>;
    +
    651  using storage_type = constness_as_t<typename storage_traits<Entity, std::remove_const_t<Component>>::storage_type, Component>;
    +
    652 
    +
    653  class iterable final {
    +
    654  template<typename... It>
    +
    655  struct iterable_iterator final {
    +
    656  using difference_type = std::ptrdiff_t;
    +
    657  using value_type = decltype(std::tuple_cat(std::tuple<Entity>{}, std::declval<basic_view_impl>().get({})));
    +
    658  using pointer = void;
    +
    659  using reference = value_type;
    +
    660  using iterator_category = std::input_iterator_tag;
    661 
    -
    662  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    -
    663  return reverse_iterator{pool->basic_sparse_set<entity_type>::rend(), pool->rend()};
    -
    664  }
    -
    665 
    -
    666  private:
    -
    667  storage_type * const pool;
    -
    668  };
    -
    669 
    -
    670 public:
    -
    672  using raw_type = Component;
    -
    674  using entity_type = Entity;
    -
    676  using size_type = std::size_t;
    -
    678  using iterator = typename basic_sparse_set<Entity>::iterator;
    -
    680  using reverse_iterator = typename basic_sparse_set<Entity>::reverse_iterator;
    -
    681 
    -
    683  basic_view() ENTT_NOEXCEPT
    -
    684  : pools{}
    -
    685  {}
    -
    686 
    -
    691  basic_view(storage_type &ref) ENTT_NOEXCEPT
    -
    692  : pools{&ref}
    -
    693  {}
    -
    694 
    -
    699  [[nodiscard]] size_type size() const ENTT_NOEXCEPT {
    -
    700  return std::get<0>(pools)->size();
    -
    701  }
    -
    702 
    -
    707  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
    -
    708  return std::get<0>(pools)->empty();
    -
    709  }
    -
    710 
    -
    719  [[nodiscard]] raw_type * raw() const ENTT_NOEXCEPT {
    -
    720  return std::get<0>(pools)->raw();
    -
    721  }
    -
    722 
    -
    731  [[nodiscard]] const entity_type * data() const ENTT_NOEXCEPT {
    -
    732  return std::get<0>(pools)->data();
    -
    733  }
    -
    734 
    -
    743  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    -
    744  return std::get<0>(pools)->basic_sparse_set<entity_type>::begin();
    -
    745  }
    -
    746 
    -
    756  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    -
    757  return std::get<0>(pools)->basic_sparse_set<entity_type>::end();
    -
    758  }
    -
    759 
    -
    768  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    -
    769  return std::get<0>(pools)->basic_sparse_set<entity_type>::rbegin();
    -
    770  }
    -
    771 
    -
    783  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    -
    784  return std::get<0>(pools)->basic_sparse_set<entity_type>::rend();
    -
    785  }
    -
    786 
    -
    792  [[nodiscard]] entity_type front() const {
    -
    793  const auto it = begin();
    -
    794  return it != end() ? *it : null;
    -
    795  }
    -
    796 
    -
    802  [[nodiscard]] entity_type back() const {
    -
    803  const auto it = rbegin();
    -
    804  return it != rend() ? *it : null;
    -
    805  }
    -
    806 
    -
    813  [[nodiscard]] iterator find(const entity_type entt) const {
    -
    814  const auto it = std::get<0>(pools)->find(entt);
    -
    815  return it != end() && *it == entt ? it : end();
    -
    816  }
    -
    817 
    -
    823  [[nodiscard]] entity_type operator[](const size_type pos) const {
    -
    824  return begin()[pos];
    -
    825  }
    -
    826 
    -
    831  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    -
    832  return std::get<0>(pools) != nullptr;
    -
    833  }
    -
    834 
    -
    840  [[nodiscard]] bool contains(const entity_type entt) const {
    -
    841  return std::get<0>(pools)->contains(entt);
    -
    842  }
    -
    843 
    -
    859  template<typename... Comp>
    -
    860  [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    -
    861  ENTT_ASSERT(contains(entt));
    +
    662  template<typename... Discard>
    +
    663  iterable_iterator(It... from, Discard...) ENTT_NOEXCEPT
    +
    664  : it{from...}
    +
    665  {}
    +
    666 
    +
    667  iterable_iterator & operator++() ENTT_NOEXCEPT {
    +
    668  return (++std::get<It>(it), ...), *this;
    +
    669  }
    +
    670 
    +
    671  iterable_iterator operator++(int) ENTT_NOEXCEPT {
    +
    672  iterable_iterator orig = *this;
    +
    673  return ++(*this), orig;
    +
    674  }
    +
    675 
    +
    676  [[nodiscard]] reference operator*() const ENTT_NOEXCEPT {
    +
    677  return { *std::get<It>(it)... };
    +
    678  }
    +
    679 
    +
    680  [[nodiscard]] bool operator==(const iterable_iterator &other) const ENTT_NOEXCEPT {
    +
    681  return std::get<0>(other.it) == std::get<0>(it);
    +
    682  }
    +
    683 
    +
    684  [[nodiscard]] bool operator!=(const iterable_iterator &other) const ENTT_NOEXCEPT {
    +
    685  return !(*this == other);
    +
    686  }
    +
    687 
    +
    688  private:
    +
    689  std::tuple<It...> it;
    +
    690  };
    +
    691 
    +
    692  public:
    +
    693  using iterator = std::conditional_t<
    +
    694  std::is_void_v<decltype(std::declval<storage_type>().get({}))>,
    +
    695  iterable_iterator<typename basic_common_type::iterator>,
    +
    696  iterable_iterator<typename basic_common_type::iterator, decltype(std::declval<storage_type>().begin())>
    +
    697  >;
    +
    698  using reverse_iterator = std::conditional_t<
    +
    699  std::is_void_v<decltype(std::declval<storage_type>().get({}))>,
    +
    700  iterable_iterator<typename basic_common_type::reverse_iterator>,
    +
    701  iterable_iterator<typename basic_common_type::reverse_iterator, decltype(std::declval<storage_type>().rbegin())>
    +
    702  >;
    +
    703 
    +
    704  iterable(storage_type &ref)
    +
    705  : pool{&ref}
    +
    706  {}
    +
    707 
    +
    708  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    +
    709  return iterator{pool->basic_common_type::begin(), pool->begin()};
    +
    710  }
    +
    711 
    +
    712  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    +
    713  return iterator{pool->basic_common_type::end(), pool->end()};
    +
    714  }
    +
    715 
    +
    716  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    +
    717  return reverse_iterator{pool->basic_common_type::rbegin(), pool->rbegin()};
    +
    718  }
    +
    719 
    +
    720  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    +
    721  return reverse_iterator{pool->basic_common_type::rend(), pool->rend()};
    +
    722  }
    +
    723 
    +
    724  private:
    +
    725  storage_type * const pool;
    +
    726  };
    +
    727 
    +
    728 public:
    +
    730  using entity_type = Entity;
    +
    732  using size_type = std::size_t;
    +
    734  using iterator = typename basic_common_type::iterator;
    +
    736  using reverse_iterator = typename basic_common_type::reverse_iterator;
    +
    738  using iterable_view = iterable;
    +
    739 
    +
    741  basic_view_impl() ENTT_NOEXCEPT
    +
    742  : pools{},
    +
    743  filter{}
    +
    744  {}
    +
    745 
    +
    750  basic_view_impl(storage_type &ref) ENTT_NOEXCEPT
    +
    751  : pools{&ref},
    +
    752  filter{}
    +
    753  {}
    +
    754 
    +
    759  [[nodiscard]] size_type size() const ENTT_NOEXCEPT {
    +
    760  return std::get<0>(pools)->size();
    +
    761  }
    +
    762 
    +
    767  [[nodiscard]] bool empty() const ENTT_NOEXCEPT {
    +
    768  return std::get<0>(pools)->empty();
    +
    769  }
    +
    770 
    +
    775  [[nodiscard]] auto raw() const ENTT_NOEXCEPT {
    +
    776  return std::get<0>(pools)->raw();
    +
    777  }
    +
    778 
    +
    787  [[nodiscard]] auto data() const ENTT_NOEXCEPT {
    +
    788  return std::get<0>(pools)->data();
    +
    789  }
    +
    790 
    +
    799  [[nodiscard]] iterator begin() const ENTT_NOEXCEPT {
    +
    800  return std::get<0>(pools)->basic_common_type::begin();
    +
    801  }
    +
    802 
    +
    812  [[nodiscard]] iterator end() const ENTT_NOEXCEPT {
    +
    813  return std::get<0>(pools)->basic_common_type::end();
    +
    814  }
    +
    815 
    +
    824  [[nodiscard]] reverse_iterator rbegin() const ENTT_NOEXCEPT {
    +
    825  return std::get<0>(pools)->basic_common_type::rbegin();
    +
    826  }
    +
    827 
    +
    839  [[nodiscard]] reverse_iterator rend() const ENTT_NOEXCEPT {
    +
    840  return std::get<0>(pools)->basic_common_type::rend();
    +
    841  }
    +
    842 
    +
    848  [[nodiscard]] entity_type front() const {
    +
    849  const auto it = begin();
    +
    850  return it != end() ? *it : null;
    +
    851  }
    +
    852 
    +
    858  [[nodiscard]] entity_type back() const {
    +
    859  const auto it = rbegin();
    +
    860  return it != rend() ? *it : null;
    +
    861  }
    862 
    -
    863  if constexpr(sizeof...(Comp) == 0) {
    -
    864  return get_as_tuple(*std::get<0>(pools), entt);
    -
    865  } else {
    -
    866  static_assert(std::is_same_v<Comp..., Component>, "Invalid component type");
    -
    867  return std::get<0>(pools)->get(entt);
    -
    868  }
    -
    869  }
    -
    870 
    -
    893  template<typename Func>
    -
    894  void each(Func func) const {
    -
    895  if constexpr(std::is_void_v<decltype(std::get<0>(pools)->get({}))>) {
    -
    896  if constexpr(std::is_invocable_v<Func>) {
    -
    897  for(auto pos = size(); pos; --pos) {
    -
    898  func();
    -
    899  }
    -
    900  } else {
    -
    901  for(auto entity: *this) {
    -
    902  func(entity);
    -
    903  }
    -
    904  }
    -
    905  } else {
    -
    906  if constexpr(is_applicable_v<Func, decltype(*each().begin())>) {
    -
    907  for(const auto pack: each()) {
    -
    908  std::apply(func, pack);
    -
    909  }
    -
    910  } else {
    -
    911  for(auto &&component: *std::get<0>(pools)) {
    -
    912  func(component);
    -
    913  }
    -
    914  }
    -
    915  }
    -
    916  }
    -
    917 
    -
    931  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    -
    932  return iterable_view{*std::get<0>(pools)};
    -
    933  }
    -
    934 
    -
    944  template<typename Id, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    -
    945  friend auto operator|(const basic_view<Id, exclude_t<ELhs...>, CLhs...> &, const basic_view<Id, exclude_t<ERhs...>, CRhs...> &);
    -
    946 
    -
    947 private:
    -
    948  const std::tuple<storage_type *> pools;
    -
    949  const std::tuple<> filter;
    -
    950 };
    -
    951 
    -
    952 
    -
    958 template<typename... Storage>
    -
    959 basic_view(Storage &... storage) ENTT_NOEXCEPT
    -
    960 -> basic_view<std::common_type_t<typename Storage::entity_type...>, entt::exclude_t<>, constness_as_t<typename Storage::value_type, Storage>...>;
    -
    961 
    -
    962 
    -
    974 template<typename Entity, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    -
    975 [[nodiscard]] auto operator|(const basic_view<Entity, exclude_t<ELhs...>, CLhs...> &lhs, const basic_view<Entity, exclude_t<ERhs...>, CRhs...> &rhs) {
    -
    976  using view_type = basic_view<Entity, exclude_t<ELhs..., ERhs...>, CLhs..., CRhs...>;
    -
    977  return std::apply([](auto *... storage) { return view_type{*storage...}; }, std::tuple_cat(lhs.pools, rhs.pools, lhs.filter, rhs.filter));
    -
    978 }
    -
    979 
    -
    980 
    -
    981 }
    -
    982 
    -
    983 
    -
    984 #endif
    - -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::rbegin
    reverse_iterator rbegin() const
    Returns an iterator to the first entity of the reversed view.
    Definition: view.hpp:355
    -
    entt::operator==
    constexpr bool operator==(const Entity &entity, const null_t &other) noexcept
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:158
    -
    entt::basic_view< Entity, exclude_t<>, Component >::operator|
    friend auto operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
    Combines two views in a more specific one (friend function).
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::front
    entity_type front() const
    Returns the first entity of the view, if any.
    Definition: view.hpp:379
    -
    entt::view
    basic_view< entity, Args... > view
    Alias declaration for the most common use case.
    Definition: fwd.hpp:128
    -
    entt::basic_view< Entity, exclude_t<>, Component >::basic_view
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition: view.hpp:683
    -
    entt::basic_view< Entity, exclude_t<>, Component >::rend
    reverse_iterator rend() const noexcept
    Returns an iterator that is past the last entity of the reversed view.
    Definition: view.hpp:783
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::back
    entity_type back() const
    Returns the last entity of the view, if any.
    Definition: view.hpp:389
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::operator|
    friend auto operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
    Combines two views in a more specific one (friend function).
    -
    entt::get
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    -
    entt::basic_view< Entity, exclude_t<>, Component >::front
    entity_type front() const
    Returns the first entity of the view, if any.
    Definition: view.hpp:792
    -
    entt::basic_view< Entity, exclude_t<>, Component >::raw
    raw_type * raw() const noexcept
    Direct access to the list of components.
    Definition: view.hpp:719
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::reverse_iterator
    view_iterator< typename basic_sparse_set< entity_type >::reverse_iterator > reverse_iterator
    Reverse iterator type.
    Definition: view.hpp:287
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::use
    void use() const noexcept
    Forces the type to use to drive iterations.
    Definition: view.hpp:310
    -
    entt::exclude_t
    Alias for exclusion lists.
    Definition: utility.hpp:16
    -
    entt::basic_storage
    Basic storage implementation.
    Definition: storage.hpp:52
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::iterator
    view_iterator< typename basic_sparse_set< entity_type >::iterator > iterator
    Bidirectional iterator type.
    Definition: view.hpp:285
    -
    entt::basic_sparse_set::size
    size_type size() const noexcept
    Returns the number of elements in a sparse set.
    Definition: sparse_set.hpp:260
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::basic_view
    basic_view() noexcept
    Default constructor to use to create empty, invalid views.
    Definition: view.hpp:290
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::find
    iterator find(const entity_type entt) const
    Finds an entity.
    Definition: view.hpp:400
    -
    entt::basic_view< Entity, exclude_t<>, Component >::raw_type
    Component raw_type
    Type of component iterated by the view.
    Definition: view.hpp:672
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::contains
    bool contains(const entity_type entt) const
    Checks if a view contains an entity.
    Definition: view.hpp:418
    -
    entt::Storage
    Basic poly storage implementation.
    Definition: poly_storage.hpp:21
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::size_hint
    size_type size_hint() const noexcept
    Estimates the number of entities iterated by the view.
    Definition: view.hpp:318
    -
    entt::basic_view< Entity, exclude_t<>, Component >::find
    iterator find(const entity_type entt) const
    Finds an entity.
    Definition: view.hpp:813
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::each
    iterable_view each() const noexcept
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:512
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::end
    iterator end() const
    Returns an iterator that is past the last entity of the view.
    Definition: view.hpp:343
    -
    entt::basic_view< Entity, exclude_t<>, Component >::operator[]
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition: view.hpp:823
    -
    entt::basic_sparse_set::iterator
    sparse_set_iterator iterator
    Random access iterator type.
    Definition: sparse_set.hpp:188
    -
    entt::basic_view< Entity, exclude_t<>, Component >::end
    iterator end() const noexcept
    Returns an iterator that is past the last entity of the view.
    Definition: view.hpp:756
    -
    entt::basic_view< Entity, exclude_t<>, Component >::basic_view
    basic_view(storage_type &ref) noexcept
    Constructs a single-type view from a storage class.
    Definition: view.hpp:691
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::basic_view
    basic_view(storage_type< Component > &... component, const storage_type< Exclude > &... epool) noexcept
    Constructs a multi-type view from a set of storage classes.
    Definition: view.hpp:299
    +
    869  [[nodiscard]] iterator find(const entity_type entt) const {
    +
    870  const auto it = std::get<0>(pools)->find(entt);
    +
    871  return it != end() && *it == entt ? it : end();
    +
    872  }
    +
    873 
    +
    879  [[nodiscard]] entity_type operator[](const size_type pos) const {
    +
    880  return begin()[pos];
    +
    881  }
    +
    882 
    +
    887  [[nodiscard]] explicit operator bool() const ENTT_NOEXCEPT {
    +
    888  return std::get<0>(pools) != nullptr;
    +
    889  }
    +
    890 
    +
    896  [[nodiscard]] bool contains(const entity_type entt) const {
    +
    897  return std::get<0>(pools)->contains(entt);
    +
    898  }
    +
    899 
    +
    915  template<typename... Comp>
    +
    916  [[nodiscard]] decltype(auto) get(const entity_type entt) const {
    +
    917  ENTT_ASSERT(contains(entt), "View does not contain entity");
    +
    918 
    +
    919  if constexpr(sizeof...(Comp) == 0) {
    +
    920  return get_as_tuple(*std::get<0>(pools), entt);
    +
    921  } else {
    +
    922  static_assert(std::is_same_v<Comp..., Component>, "Invalid component type");
    +
    923  return std::get<0>(pools)->get(entt);
    +
    924  }
    +
    925  }
    +
    926 
    +
    949  template<typename Func>
    +
    950  void each(Func func) const {
    +
    951  if constexpr(std::is_void_v<decltype(std::get<0>(pools)->get({}))>) {
    +
    952  if constexpr(std::is_invocable_v<Func>) {
    +
    953  for(auto pos = size(); pos; --pos) {
    +
    954  func();
    +
    955  }
    +
    956  } else {
    +
    957  for(auto entity: *this) {
    +
    958  func(entity);
    +
    959  }
    +
    960  }
    +
    961  } else {
    +
    962  if constexpr(is_applicable_v<Func, decltype(*each().begin())>) {
    +
    963  for(const auto pack: each()) {
    +
    964  std::apply(func, pack);
    +
    965  }
    +
    966  } else {
    +
    967  for(auto &&component: *std::get<0>(pools)) {
    +
    968  func(component);
    +
    969  }
    +
    970  }
    +
    971  }
    +
    972  }
    +
    973 
    +
    987  [[nodiscard]] iterable_view each() const ENTT_NOEXCEPT {
    +
    988  return iterable_view{*std::get<0>(pools)};
    +
    989  }
    +
    990 
    +
    1000  template<typename Id, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    +
    1001  friend auto operator|(const basic_view<Id, exclude_t<ELhs...>, CLhs...> &, const basic_view<Id, exclude_t<ERhs...>, CRhs...> &);
    +
    1002 
    +
    1003 private:
    +
    1004  const std::tuple<storage_type *> pools;
    +
    1005  const std::tuple<> filter;
    +
    1006 };
    +
    1007 
    +
    1008 
    +
    1015 template<typename Entity, typename... Exclude, typename... Component>
    +
    1016 struct basic_view<Entity, exclude_t<Exclude...>, Component...>
    +
    1017  : basic_view_impl<std::conditional_t<std::disjunction_v<typename component_traits<std::remove_const_t<Component>>::in_place_delete...>, stable_storage_policy, packed_storage_policy>, Entity, exclude_t<Exclude...>, Component...>
    +
    1018 {
    +
    1020  using storage_policy = std::conditional_t<std::disjunction_v<typename component_traits<std::remove_const_t<Component>>::in_place_delete...>, stable_storage_policy, packed_storage_policy>;
    +
    1021  using basic_view_impl<storage_policy, Entity, exclude_t<Exclude...>, Component...>::basic_view_impl;
    +
    1022 };
    +
    1023 
    +
    1024 
    +
    1030 template<typename... Storage>
    +
    1031 basic_view(Storage &... storage)
    +
    1032 -> basic_view<std::common_type_t<typename Storage::entity_type...>, entt::exclude_t<>, constness_as_t<typename Storage::value_type, Storage>...>;
    +
    1033 
    +
    1034 
    +
    1046 template<typename Entity, typename... ELhs, typename... CLhs, typename... ERhs, typename... CRhs>
    +
    1047 [[nodiscard]] auto operator|(const basic_view<Entity, exclude_t<ELhs...>, CLhs...> &lhs, const basic_view<Entity, exclude_t<ERhs...>, CRhs...> &rhs) {
    +
    1048  using view_type = basic_view<Entity, exclude_t<ELhs..., ERhs...>, CLhs..., CRhs...>;
    +
    1049  return std::apply([](auto *... storage) { return view_type{*storage...}; }, std::tuple_cat(lhs.pools, rhs.pools, lhs.filter, rhs.filter));
    +
    1050 }
    +
    1051 
    +
    1052 
    +
    1053 }
    +
    1054 
    +
    1055 
    +
    1056 #endif
    +
    entt::basic_sparse_set
    Basic sparse set implementation.
    Definition: sparse_set.hpp:53
    +
    entt::basic_sparse_set::iterator
    sparse_set_iterator iterator
    Random access iterator type.
    Definition: sparse_set.hpp:286
    +
    entt::basic_sparse_set::size
    size_type size() const
    Returns the number of elements in a sparse set.
    Definition: sparse_set.hpp:427
    +
    entt::basic_sparse_set::reverse_iterator
    std::reverse_iterator< iterator > reverse_iterator
    Reverse iterator type.
    Definition: sparse_set.hpp:288
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:539
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::front
    entity_type front() const
    Returns the first entity of the view, if any.
    Definition: view.hpp:445
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rend
    reverse_iterator rend() const
    Returns an iterator that is past the last entity of the reversed view.
    Definition: view.hpp:436
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each
    iterable_view each() const
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:576
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::use
    void use() const
    Forces the type to use to drive iterations.
    Definition: view.hpp:376
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::find
    iterator find(const entity_type entt) const
    Finds an entity.
    Definition: view.hpp:466
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::contains
    bool contains(const entity_type entt) const
    Checks if a view contains an entity.
    Definition: view.hpp:484
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::iterator
    internal::view_iterator< Policy, typename basic_common_type::iterator, sizeof...(Component) - 1u, sizeof...(Exclude)> iterator
    Bidirectional iterator type.
    Definition: view.hpp:349
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::basic_view_impl
    basic_view_impl(storage_type< Component > &... component, const storage_type< Exclude > &... epool)
    Constructs a multi-type view from a set of storage classes.
    Definition: view.hpp:365
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::size_hint
    size_type size_hint() const
    Estimates the number of entities iterated by the view.
    Definition: view.hpp:384
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::iterable_view
    iterable iterable_view
    Iterable view type.
    Definition: view.hpp:353
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::reverse_iterator
    internal::view_iterator< Policy, typename basic_common_type::reverse_iterator, sizeof...(Component) - 1u, sizeof...(Exclude)> reverse_iterator
    Reverse iterator type.
    Definition: view.hpp:351
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::basic_view_impl
    basic_view_impl()
    Default constructor to use to create empty, invalid views.
    Definition: view.hpp:356
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::begin
    iterator begin() const
    Returns an iterator to the first entity of the view.
    Definition: view.hpp:396
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::operator|
    friend auto operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
    Combines two views in a more specific one (friend function).
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::rbegin
    reverse_iterator rbegin() const
    Returns an iterator to the first entity of the reversed view.
    Definition: view.hpp:421
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each
    iterable_view each() const
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:593
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::back
    entity_type back() const
    Returns the last entity of the view, if any.
    Definition: view.hpp:455
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: view.hpp:347
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:558
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::end
    iterator end() const
    Returns an iterator that is past the last entity of the view.
    Definition: view.hpp:409
    +
    entt::basic_view_impl< Policy, Entity, exclude_t< Exclude... >, Component... >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:345
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::basic_view_impl
    basic_view_impl(storage_type &ref)
    Constructs a single-type view from a storage class.
    Definition: view.hpp:750
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:950
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator[]
    entity_type operator[](const size_type pos) const
    Returns the identifier that occupies the given position.
    Definition: view.hpp:879
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::each
    iterable_view each() const
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:987
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::data
    auto data() const
    Direct access to the list of entities.
    Definition: view.hpp:787
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:730
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::contains
    bool contains(const entity_type entt) const
    Checks if a view contains an entity.
    Definition: view.hpp:896
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::begin
    iterator begin() const
    Returns an iterator to the first entity of the view.
    Definition: view.hpp:799
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::basic_view_impl
    basic_view_impl()
    Default constructor to use to create empty, invalid views.
    Definition: view.hpp:741
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::operator|
    friend auto operator|(const basic_view< Id, exclude_t< ELhs... >, CLhs... > &, const basic_view< Id, exclude_t< ERhs... >, CRhs... > &)
    Combines two views in a more specific one (friend function).
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::iterator
    typename basic_common_type::iterator iterator
    Random access iterator type.
    Definition: view.hpp:734
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::size
    size_type size() const
    Returns the number of entities that have the given component.
    Definition: view.hpp:759
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::reverse_iterator
    typename basic_common_type::reverse_iterator reverse_iterator
    Reversed iterator type.
    Definition: view.hpp:736
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rbegin
    reverse_iterator rbegin() const
    Returns an iterator to the first entity of the reversed view.
    Definition: view.hpp:824
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::end
    iterator end() const
    Returns an iterator that is past the last entity of the view.
    Definition: view.hpp:812
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::raw
    auto raw() const
    Direct access to the raw representation offered by the storage.
    Definition: view.hpp:775
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::rend
    reverse_iterator rend() const
    Returns an iterator that is past the last entity of the reversed view.
    Definition: view.hpp:839
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::empty
    bool empty() const
    Checks whether a view is empty.
    Definition: view.hpp:767
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: view.hpp:732
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::front
    entity_type front() const
    Returns the first entity of the view, if any.
    Definition: view.hpp:848
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::find
    iterator find(const entity_type entt) const
    Finds an entity.
    Definition: view.hpp:869
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::iterable_view
    iterable iterable_view
    Iterable view type.
    Definition: view.hpp:738
    +
    entt::basic_view_impl< packed_storage_policy, Entity, exclude_t<>, Component >::back
    entity_type back() const
    Returns the last entity of the view, if any.
    Definition: view.hpp:858
    +
    entt::basic_view_impl
    View implementation.
    Definition: view.hpp:167
    entt
    EnTT default namespace.
    Definition: algorithm.hpp:13
    -
    entt::operator|
    auto operator|(const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &lhs, const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &rhs)
    Combines two views in a more specific one.
    Definition: view.hpp:975
    -
    entt::get_as_tuple
    auto get_as_tuple([[maybe_unused]] Type &container, [[maybe_unused]] const typename Type::entity_type entity)
    Gets the element assigned to an entity from a storage, if any.
    Definition: storage.hpp:806
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:473
    -
    entt::basic_sparse_set
    Basic sparse set implementation.
    Definition: sparse_set.hpp:43
    -
    entt::basic_view< Entity, exclude_t<>, Component >::empty
    bool empty() const noexcept
    Checks whether a view is empty.
    Definition: view.hpp:707
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:494
    -
    entt::basic_view< Entity, exclude_t<>, Component >::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: view.hpp:676
    -
    entt::basic_view< Entity, exclude_t<>, Component >::each
    void each(Func func) const
    Iterates entities and components and applies the given function object to them.
    Definition: view.hpp:894
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::rend
    reverse_iterator rend() const
    Returns an iterator that is past the last entity of the reversed view.
    Definition: view.hpp:370
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::begin
    iterator begin() const
    Returns an iterator to the first entity of the view.
    Definition: view.hpp:330
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::size_type
    std::size_t size_type
    Unsigned integer type.
    Definition: view.hpp:283
    -
    entt::basic_view< Entity, exclude_t<>, Component >::begin
    iterator begin() const noexcept
    Returns an iterator to the first entity of the view.
    Definition: view.hpp:743
    -
    entt::basic_view< Entity, exclude_t<>, Component >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:674
    -
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs) noexcept
    Checks if two wrappers differ in their content.
    Definition: any.hpp:348
    -
    entt::basic_view< Entity, exclude_t<>, Component >::contains
    bool contains(const entity_type entt) const
    Checks if a view contains an entity.
    Definition: view.hpp:840
    -
    entt::basic_view< Entity, exclude_t<>, Component >::each
    iterable_view each() const noexcept
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:931
    -
    entt::basic_view< Entity, exclude_t<>, Component >::back
    entity_type back() const
    Returns the last entity of the view, if any.
    Definition: view.hpp:802
    -
    entt::is_applicable_v
    constexpr auto is_applicable_v
    Helper variable template.
    Definition: type_traits.hpp:513
    -
    entt::basic_view< Entity, exclude_t<>, Component >::rbegin
    reverse_iterator rbegin() const noexcept
    Returns an iterator to the first entity of the reversed view.
    Definition: view.hpp:768
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::each
    iterable_view each() const noexcept
    Returns an iterable object to use to visit the view.
    Definition: view.hpp:531
    -
    entt::basic_view< Entity, exclude_t<>, Component >::reverse_iterator
    typename basic_sparse_set< Entity >::reverse_iterator reverse_iterator
    Reversed iterator type.
    Definition: view.hpp:680
    -
    entt::basic_sparse_set::reverse_iterator
    const entity_type * reverse_iterator
    Reverse iterator type.
    Definition: sparse_set.hpp:190
    -
    entt::basic_view
    View.
    Definition: fwd.hpp:24
    -
    entt::basic_view< Entity, exclude_t<>, Component >::iterator
    typename basic_sparse_set< Entity >::iterator iterator
    Random access iterator type.
    Definition: view.hpp:678
    -
    entt::basic_view
    basic_view(Storage &... storage) noexcept -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
    Deduction guide.
    -
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:60
    -
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:632
    -
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::entity_type
    Entity entity_type
    Underlying entity identifier.
    Definition: view.hpp:281
    -
    entt::basic_view< Entity, exclude_t<>, Component >::data
    const entity_type * data() const noexcept
    Direct access to the list of entities.
    Definition: view.hpp:731
    -
    entt::basic_view< Entity, exclude_t<>, Component >::size
    size_type size() const noexcept
    Returns the number of entities that have the given component.
    Definition: view.hpp:699
    +
    entt::entity
    entity
    Default entity identifier.
    Definition: fwd.hpp:61
    +
    entt::basic_view
    basic_view(Storage &... storage) -> basic_view< std::common_type_t< typename Storage::entity_type... >, entt::exclude_t<>, constness_as_t< typename Storage::value_type, Storage >... >
    Deduction guide.
    +
    entt::is_applicable_v
    constexpr bool is_applicable_v
    Helper variable template.
    Definition: type_traits.hpp:518
    +
    entt::tombstone
    constexpr tombstone_t tombstone
    Compile-time constant for tombstone entities.
    Definition: entity.hpp:345
    +
    entt::constness_as_t
    typename constness_as< To, From >::type constness_as_t
    Alias template to facilitate the transcription of the constness.
    Definition: type_traits.hpp:653
    +
    entt::get
    constexpr get_t< Type... > get
    Variable template for lists of observed components.
    Definition: utility.hpp:40
    +
    entt::get_as_tuple
    auto get_as_tuple([[maybe_unused]] Type &container, [[maybe_unused]] const typename Type::entity_type entt)
    Gets the element assigned to an entity from a storage, if any.
    Definition: storage.hpp:1031
    +
    entt::view
    basic_view< entity, Args... > view
    Alias declaration for the most common use case.
    Definition: fwd.hpp:129
    +
    entt::operator!=
    bool operator!=(const basic_any< Len, Align > &lhs, const basic_any< Len, Align > &rhs)
    Checks if two wrappers differ in their content.
    Definition: any.hpp:368
    +
    entt::operator|
    auto operator|(const basic_view< Entity, exclude_t< ELhs... >, CLhs... > &lhs, const basic_view< Entity, exclude_t< ERhs... >, CRhs... > &rhs)
    Combines two views in a more specific one.
    Definition: view.hpp:1047
    +
    entt::operator==
    constexpr bool operator==(const Entity entity, const null_t other)
    Compares a null object and an entity identifier of any type.
    Definition: entity.hpp:219
    +
    entt::Storage
    Basic poly storage implementation.
    Definition: poly_storage.hpp:21
    +
    entt::basic_storage
    Storage implementation dispatcher.
    Definition: storage.hpp:1006
    +
    entt::basic_view< Entity, exclude_t< Exclude... >, Component... >::storage_policy
    std::conditional_t< std::disjunction_v< typename component_traits< std::remove_const_t< Component > >::in_place_delete... >, stable_storage_policy, packed_storage_policy > storage_policy
    Most restrictive storage policy of all component types.
    Definition: view.hpp:1020
    +
    entt::basic_view
    View implementation dispatcher.
    Definition: fwd.hpp:25
    +
    entt::exclude_t
    Alias for exclusion lists.
    Definition: utility.hpp:16
    +
    entt::packed_storage_policy
    Packed storage policy, aimed at faster linear iteration.
    Definition: view.hpp:144
    +
    entt::stable_storage_policy
    Stable storage policy, aimed at pointer stability.
    Definition: view.hpp:127
    +