EnTT: entt::basic_any< Len, Align > Class Template Reference

EnTT 3.15.0

Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
entt::basic_any< Len, Align > Class Template Reference

A SBO friendly, type-safe container for single values of any type. More...

`#include <any.hpp>`

Collaboration diagram for entt::basic_any< Len, Align >:
[legend]

## Public Member Functions
constexpr | basic_any () noexcept
| 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.
template<typename Type>
| basic_any (std::in_place_t, Type *value)
| Constructs a wrapper taking ownership of the passed object.
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
| basic_any (Type &&value)
| Constructs a wrapper from a given value.
| basic_any (const basic_any &other)
| Copy constructor.
| basic_any (basic_any &&other) noexcept
| Move constructor.
| ~basic_any ()
| Frees the internal storage, whatever it means.
basic_any & | operator= (const basic_any &other)
| Copy assignment operator.
basic_any & | operator= (basic_any &&other) noexcept
| Move assignment operator.
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>
basic_any & | operator= (Type &&value)
| Value assignment operator.
const type_info & | type () const noexcept
| Returns the object type if any, `type_id<void>()` otherwise.
const void * | data () const noexcept
| Returns an opaque pointer to the contained instance.
const void * | data (const type_info &req) const noexcept
| Returns an opaque pointer to the contained instance.
void * | data () noexcept
| Returns an opaque pointer to the contained instance.
void * | data (const type_info &req) noexcept
| Returns an opaque pointer to the contained instance.
template<typename Type, typename... Args>
void | emplace (Args &&...args)
| Replaces the contained object by creating a new instance directly.
bool | assign (const basic_any &other)
| Assigns a value to the contained object without replacing it.
bool | assign (basic_any &&other)
| Assigns a value to the contained object without replacing it.
void | reset ()
| Destroys contained object.
| operator bool () const noexcept
| Returns false if a wrapper is empty, true otherwise.
bool | operator== (const basic_any &other) const noexcept
| Checks if two wrappers differ in their content.
bool | operator!= (const basic_any &other) const noexcept
| Checks if two wrappers differ in their content.
basic_any | as_ref () noexcept
| Aliasing constructor.
basic_any | as_ref () const noexcept
| Aliasing constructor.
bool | owner () const noexcept
| Returns true if a wrapper owns its object, false otherwise.
any_policy | policy () const noexcept
| Returns the current mode of an any object.

## 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>
class entt::basic_any< Len, Align >

A SBO friendly, type-safe container for single values of any type.

Template Parameters

  Len | Size of the storage reserved for the small buffer optimization.
  Align | Optional alignment requirement.

Definition at line 38 of file any.hpp.

## Constructor & Destructor Documentation

## ◆ basic_any() [1/6]

template<std::size_t Len, std::size_t Align>

entt::basic_any< Len, Align >::basic_any | ( |  | ) |
| inlineconstexprnoexcept

Default constructor.

Definition at line 165 of file any.hpp.

## ◆ basic_any() [2/6]

template<std::size_t Len, std::size_t Align>
template<typename Type, typename... Args>

entt::basic_any< Len, Align >::basic_any | ( | std::in_place_type_t< Type > | ,
|  | Args &&... | args )
| inlineexplicit

Constructs a wrapper by directly initializing the new object.

Template Parameters

  Type | Type of object to use to initialize the wrapper.
  Args | Types of arguments to use to construct the new instance.

Parameters

  args | Parameters to use to construct the instance.

Definition at line 175 of file any.hpp.

## ◆ basic_any() [3/6]

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

entt::basic_any< Len, Align >::basic_any | ( | std::in_place_t | ,
|  | Type * | value )
| inlineexplicit

Constructs a wrapper taking ownership of the passed object.

Template Parameters

  Type | Type of object to use to initialize the wrapper.

Parameters

  value | A pointer to an object to take ownership of.

Definition at line 186 of file any.hpp.

## ◆ basic_any() [4/6]

template<std::size_t Len, std::size_t Align>
template<typename Type, typename = std::enable_if_t<!std::is_same_v<std::decay_t<Type>, basic_any>>>

entt::basic_any< Len, Align >::basic_any | ( | Type && | value | ) |
| inline

Constructs a wrapper from a given value.

Template Parameters

  Type | Type of object to use to initialize the wrapper.

Parameters

  value | An instance of an object to use to initialize the wrapper.

Definition at line 202 of file any.hpp.

## ◆ basic_any() [5/6]

template<std::size_t Len, std::size_t Align>

entt::basic_any< Len, Align >::basic_any | ( | const basic_any< Len, Align > & | other | ) |
| inline

Copy constructor.

Parameters

  other | The instance to copy from.

Definition at line 209 of file any.hpp.

## ◆ basic_any() [6/6]

template<std::size_t Len, std::size_t Align>

entt::basic_any< Len, Align >::basic_any | ( | basic_any< Len, Align > && | other | ) |
| inlinenoexcept

Move constructor.

Parameters

  other | The instance to move from.

Definition at line 220 of file any.hpp.

## ◆ ~basic_any()

template<std::size_t Len, std::size_t Align>

entt::basic_any< Len, Align >::~basic_any | ( |  | ) |
| inline

Frees the internal storage, whatever it means.

Definition at line 233 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
| inlinenodiscardnoexcept

Aliasing constructor.

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

Definition at line 425 of file any.hpp.

## ◆ as_ref() [2/2]

template<std::size_t Len, std::size_t Align>

basic_any entt::basic_any< Len, Align >::as_ref | ( |  | ) |
| inlinenodiscardnoexcept

Aliasing constructor.

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

Definition at line 420 of file any.hpp.

## ◆ assign() [1/2]

template<std::size_t Len, std::size_t Align>

bool entt::basic_any< Len, Align >::assign | ( | basic_any< Len, Align > && | other | ) |
| inline

Assigns a value to the contained object without replacing it.

Parameters

  other | The value to assign to the contained object.

Returns
  True in case of success, false otherwise.

Definition at line 362 of file any.hpp.

## ◆ assign() [2/2]

template<std::size_t Len, std::size_t Align>

bool entt::basic_any< Len, Align >::assign | ( | const basic_any< Len, Align > & | other | ) |
| inline

Assigns a value to the contained object without replacing it.

Parameters

  other | The value to assign to the contained object.

Returns
  True in case of success, false otherwise.

Definition at line 352 of file any.hpp.

## ◆ data() [1/4]

template<std::size_t Len, std::size_t Align>

const void * entt::basic_any< Len, Align >::data | ( |  | ) | const
| inlinenodiscardnoexcept

Returns an opaque pointer to the contained instance.

Returns
  An opaque pointer the contained instance, if any.

Definition at line 305 of file any.hpp.

## ◆ data() [2/4]

template<std::size_t Len, std::size_t Align>

void * entt::basic_any< Len, Align >::data | ( |  | ) |
| inlinenodiscardnoexcept

Returns an opaque pointer to the contained instance.

Returns
  An opaque pointer the contained instance, if any.

Definition at line 322 of file any.hpp.

## ◆ data() [3/4]

template<std::size_t Len, std::size_t Align>

const void * entt::basic_any< Len, Align >::data | ( | const type_info & | req | ) | const
| inlinenodiscardnoexcept

Returns an opaque pointer to the contained instance.

Parameters

  req | Expected type.

Returns
  An opaque pointer the contained instance, if any.

Definition at line 314 of file any.hpp.

## ◆ data() [4/4]

template<std::size_t Len, std::size_t Align>

void * entt::basic_any< Len, Align >::data | ( | const type_info & | req | ) |
| inlinenodiscardnoexcept

Returns an opaque pointer to the contained instance.

Parameters

  req | Expected type.

Returns
  An opaque pointer the contained instance, if any.

Definition at line 331 of file any.hpp.

## ◆ emplace()

template<std::size_t Len, std::size_t Align>
template<typename Type, typename... Args>

void entt::basic_any< Len, Align >::emplace | ( | Args &&... | args | ) |
| inline

Replaces the contained object by creating a new instance directly.

Template Parameters

  Type | Type of object to use to initialize the wrapper.
  Args | Types of arguments to use to construct the new instance.

Parameters

  args | Parameters to use to construct the instance.

Definition at line 342 of file any.hpp.

## ◆ operator bool()

template<std::size_t Len, std::size_t Align>

entt::basic_any< Len, Align >::operator bool | ( |  | ) | const
| inlineexplicitnodiscardnoexcept

Returns false if a wrapper is empty, true otherwise.

Returns
  False if the wrapper is empty, true otherwise.

Definition at line 390 of file any.hpp.

## ◆ operator!=()

template<std::size_t Len, std::size_t Align>

bool entt::basic_any< Len, Align >::operator!= | ( | const basic_any< Len, Align > & | other | ) | const
| inlinenodiscardnoexcept

Checks if two wrappers differ in their content.

Parameters

  other | Wrapper with which to compare.

Returns
  True if the two objects differ in their content, false otherwise.

Definition at line 412 of file any.hpp.

## ◆ operator=() [1/3]

template<std::size_t Len, std::size_t Align>

basic_any & entt::basic_any< Len, Align >::operator= | ( | basic_any< Len, Align > && | other | ) |
| inlinenoexcept

Move assignment operator.

Warning
  Self-moving puts objects in a safe but unspecified state.

Parameters

  other | The instance to move from.

Returns
  This any object.

Definition at line 265 of file any.hpp.

## ◆ operator=() [2/3]

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

  other | The instance to copy from.

Returns
  This any object.

Definition at line 244 of file any.hpp.

## ◆ operator=() [3/3]

template<std::size_t Len, std::size_t Align>
template<typename Type, typename = 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

  Type | Type of object to use to initialize the wrapper.

Parameters

  value | An instance of an object to use to initialize the wrapper.

Returns
  This any object.

Definition at line 288 of file any.hpp.

## ◆ operator==()

template<std::size_t Len, std::size_t Align>

bool entt::basic_any< Len, Align >::operator== | ( | const basic_any< Len, Align > & | other | ) | const
| inlinenodiscardnoexcept

Checks if two wrappers differ in their content.

Parameters

  other | Wrapper with which to compare.

Returns
  False if the two objects differ in their content, true otherwise.

Definition at line 399 of file any.hpp.

## ◆ owner()

template<std::size_t Len, std::size_t Align>

bool entt::basic_any< Len, Align >::owner | ( |  | ) | const
| inlinenodiscardnoexcept

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

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

Definition at line 433 of file any.hpp.

## ◆ policy()

template<std::size_t Len, std::size_t Align>

any_policy entt::basic_any< Len, Align >::policy | ( |  | ) | const
| inlinenodiscardnoexcept

Returns the current mode of an any object.

Returns
  The current mode of the any object.

Definition at line 441 of file any.hpp.

## ◆ reset()

template<std::size_t Len, std::size_t Align>

void entt::basic_any< Len, Align >::reset | ( |  | ) |
| inline

Destroys contained object.

Definition at line 375 of file any.hpp.

## ◆ type()

template<std::size_t Len, std::size_t Align>

const type_info & entt::basic_any< Len, Align >::type | ( |  | ) | const
| inlinenodiscardnoexcept

Returns the object type if any, `type_id<void>()` otherwise.

Returns
  The object type if any, `type_id<void>()` otherwise.

Definition at line 297 of file any.hpp.

## Member Data Documentation

## ◆ alignment

template<std::size_t Len, std::size_t Align>

auto entt::basic_any< Len, Align >::alignment = Align
| staticconstexpr

Alignment requirement.

Definition at line 162 of file any.hpp.

## ◆ instance

template<std::size_t Len, std::size_t Align>

const void* entt::basic_any< Len, Align >::instance

Definition at line 447 of file any.hpp.

## ◆ length

template<std::size_t Len, std::size_t Align>

auto entt::basic_any< Len, Align >::length = Len
| staticconstexpr

Size of the internal storage.

Definition at line 160 of file any.hpp.

## ◆ storage

template<std::size_t Len, std::size_t Align>

storage_type entt::basic_any< Len, Align >::storage

Definition at line 448 of file any.hpp.

The documentation for this class was generated from the following file:

- src/entt/core/any.hpp