28 #ifndef RTTR_VARIANT_ARRAY_H_
29 #define RTTR_VARIANT_ARRAY_H_
31 #include "rttr/detail/base/core_prerequisites.h"
32 #include "rttr/detail/misc/misc_type_traits.h"
42 class variant_array_view;
48 class array_wrapper_base;
175 bool is_valid()
const;
184 explicit operator bool()
const;
201 bool is_dynamic()
const;
214 std::size_t get_rank()
const;
227 type get_rank_type(std::size_t index)
const;
236 type get_type()
const;
243 std::size_t get_size()
const;
251 std::size_t get_size(std::size_t index_1)
const;
259 std::size_t get_size(std::size_t index_1, std::size_t index_2)
const;
267 std::size_t get_size_variadic(
const std::vector<std::size_t>& index_list)
const;
274 bool set_size(std::size_t new_size);
282 bool set_size(std::size_t new_size, std::size_t index_1);
291 bool set_size(std::size_t new_size, std::size_t index_1, std::size_t index_2);
299 bool set_size_variadic(std::size_t new_size,
const std::vector<std::size_t>& index_list);
314 bool set_value(std::size_t index_1,
argument arg);
322 bool set_value(std::size_t index_1, std::size_t index_2,
argument arg);
330 bool set_value(std::size_t index_1, std::size_t index_2, std::size_t index_3,
argument arg);
340 bool set_value_variadic(
const std::vector<std::size_t>& index_list,
argument arg);
348 variant get_value(std::size_t index_1)
const;
356 variant get_value(std::size_t index_1, std::size_t index_2)
const;
364 variant get_value(std::size_t index_1, std::size_t index_2, std::size_t index_3)
const;
371 variant get_value_variadic(
const std::vector<std::size_t>& index_list)
const;
380 bool insert_value(std::size_t index_1,
argument arg);
390 bool insert_value(std::size_t index_1, std::size_t index_2,
argument arg);
400 bool insert_value(std::size_t index_1, std::size_t index_2, std::size_t index_3,
argument arg);
409 bool insert_value_variadic(
const std::vector<std::size_t>& index_list,
argument arg);
416 bool remove_value(std::size_t index_1);
424 bool remove_value(std::size_t index_1, std::size_t index_2);
432 bool remove_value(std::size_t index_1, std::size_t index_2, std::size_t index_3);
439 bool remove_value_variadic(
const std::vector<std::size_t>& index_list);
445 std::unique_ptr<detail::array_wrapper_base> m_array_wrapper;
450 #include "rttr/detail/variant_array_view/variant_array_view_impl.h"
452 #endif // RTTR_VARIANT_ARRAY_H_
Definition: access_levels.h:33
The type class holds the type information for any arbitrary object.
Definition: type.h:153
The variant_array_view describes a class that refers to an array inside a variant.
Definition: variant_array_view.h:137
The argument class is used for forwarding arguments to properties or methods.
Definition: argument.h:51
The variant class allows to store data of any type and convert between these types transparently...
Definition: variant.h:192