Describes a fixed-length, copy-on-write, type-erased tuple with elements of any type.
More...
|
|
| message (none_t) noexcept |
| |
|
| message (const message &) noexcept=default |
| |
|
message & | operator= (const message &) noexcept=default |
| |
|
| message (message &&) noexcept |
| |
|
message & | operator= (message &&) noexcept |
| |
|
| message (data_ptr ptr) noexcept |
| |
|
void * | get_mutable (size_t p) override |
| | Returns a mutable pointer to the element at position pos.
|
| |
|
error | load (size_t pos, deserializer &source) override |
| | Load the content for the element at position pos from source.
|
| |
|
size_t | size () const noexcept override |
| | Returns the size of this tuple.
|
| |
|
uint32_t | type_token () const noexcept override |
| | Returns a type hint for the element types.
|
| |
| rtti_pair | type (size_t pos) const noexcept override |
| | Returns the type number and std::type_info object for the element at position pos. More...
|
| |
|
const void * | get (size_t pos) const noexcept override |
| | Returns the element at position pos.
|
| |
|
std::string | stringify (size_t pos) const override |
| | Returns a string representation of the element at position pos.
|
| |
|
type_erased_value_ptr | copy (size_t pos) const override |
| | Returns a copy of the element at position pos.
|
| |
|
error | save (size_t pos, serializer &sink) const override |
| | Saves the element at position pos to sink.
|
| |
| bool | shared () const noexcept override |
| | Returns whether multiple references to this tuple exist. More...
|
| |
|
error | load (deserializer &source) override |
| | Load the content for the tuple from source.
|
| |
|
error | save (serializer &sink) const override |
| | Saves the content of the tuple to sink.
|
| |
|
message & | operator+= (const message &x) |
| | Concatenates *this and x.
|
| |
|
optional< message > | apply (message_handler handler) |
| | Returns handler(*this).
|
| |
| void | force_unshare () |
| | Forces the message to copy its content if there are more than one references to the content. More...
|
| |
| data_ptr & | vals () |
| | Returns a mutable reference to the content. More...
|
| |
|
void | swap (message &other) noexcept |
| | Exchanges content of this and other.
|
| |
|
void | reset (raw_ptr new_ptr=nullptr, bool add_ref=true) noexcept |
| | Assigns new content.
|
| |
|
message | drop (size_t n) const |
| | Creates a new message with all but the first n values.
|
| |
|
message | drop_right (size_t n) const |
| | Creates a new message with all but the last n values.
|
| |
|
message | slice (size_t pos, size_t n) const |
| | Creates a new message of size n starting at the element at position p.
|
| |
| message | extract (message_handler handler) const |
| | Filters this message by applying slices of it to handler and returns the remaining elements of this operation. More...
|
| |
| cli_res | extract_opts (std::vector< cli_arg > xs, const help_factory &f=nullptr, bool no_help=false) const |
| | A simplistic interface for using extract to parse command line options. More...
|
| |
|
const void * | at (size_t p) const noexcept |
| | Returns a const pointer to the element at position p.
|
| |
|
const data_ptr & | vals () const noexcept |
| | Returns a reference to the content.
|
| |
|
const data_ptr & | cvals () const noexcept |
| | Returns a reference to the content.
|
| |
| message | take (size_t n) const |
| | Returns the size of this message. More...
|
| |
|
message | take_right (size_t n) const |
| | Creates a new message from the last n values.
|
| |
|
| type_erased_tuple (const type_erased_tuple &)=default |
| |
|
type_erased_tuple & | operator= (const type_erased_tuple &)=default |
| |
|
bool | empty () const |
| | Returns size() == 0.
|
| |
|
std::string | stringify () const |
| | Returns a string representation of the tuple.
|
| |
| bool | matches (size_t pos, uint16_t nr, const std::type_info *ptr) const noexcept |
| | Checks whether the type of the stored value at position pos matches type number n and run-time type information p. More...
|
| |
|
uint16_t | type_nr (size_t pos) const noexcept |
| | Returns the type number for the element at position pos.
|
| |
|
bool | matches (size_t pos, const rtti_pair &rtti) const noexcept |
| | Checks whether the type of the stored value matches rtti.
|
| |
|
template<class T > |
| const T & | get_as (size_t pos) const |
| | Convenience function for *reinterpret_cast<const T*>(get()).
|
| |
|
template<class T , size_t Pos> |
| const T & | get_as (typed_index< T, Pos >) const |
| |
|
template<class... Ts, long... Is> |
| std::tuple< const Ts &... > | get_as_tuple (detail::type_list< Ts... >, detail::int_list< Is... >) const |
| |
|
template<class... Ts> |
| std::tuple< const Ts &... > | get_as_tuple () const |
| |
|
template<class T > |
| T & | get_mutable_as (size_t pos) |
| | Convenience function for *reinterpret_cast<T*>(get_mutable()).
|
| |
| template<class T > |
| T | move_if_unshared (size_t pos) |
| | Convenience function for moving a value out of the tuple if it is unshared. More...
|
| |
|
template<class T > |
| bool | match_element (size_t pos) const noexcept |
| | Returns true if the element at pos matches T.
|
| |
|
template<class... Ts> |
| bool | match_elements () const noexcept |
| | Returns true if the pattern Ts... matches the content of this tuple.
|
| |
|
template<class F > |
| auto | apply (F fun) -> optional< typename detail::get_callable_trait< F >::result_type > |
| |
Describes a fixed-length, copy-on-write, type-erased tuple with elements of any type.