Bifrost SDK
Bifrost SDK documentation
Amino Namespace Reference

Namespaces

namespace  StringLiterals
 
namespace  StringViewLiterals
 

Classes

class  Any
 Generic value class that allows for storage of a value of any type. More...
 
class  AnyPayloadTraits
 Traits about the to-be-payload of an Amino::Any. More...
 
class  Array
 Define a Amino array of elements of type T. More...
 
class  EntityIndexedList
 
class  ForwardTaskObserver
 Base class for a ITaskObserver that forwards notifications to a given TaskNotifier. More...
 
class  ITaskObserver
 Abstract interface for observing the progress of a task. More...
 
class  Message
 A Message object that of a specific MessageKind, optional MessageClass, and a MessageText that relates to an optional Source. More...
 
class  MessageClass
 The "class" of the message. More...
 
class  MessageFilter
 Helper class to filter messages based on their MessageKind. More...
 
class  MessageText
 The text content from which to construct a message (with optional formatting specifiers). More...
 
class  MutablePtr
 Transient version of Amino::Ptr<T> which allows mutable access to the pointee. More...
 
class  NamingUtilities
 A collection of Naming Utility methods. More...
 
struct  NoStopState_t
 A tag type to indicate that a StopSource should be created without a valid state (such StopSource can't be used to request a stop). More...
 
struct  PointeeTraits
 Traits about the to-be-pointee of an Amino::Ptr<T> or Amino::MutablePtr<T> class. More...
 
class  Ptr
 Smart pointers allowing custom user classes (opaque classes) to be used within Amino graphs. More...
 
struct  PtrDefaultFlag
 Flag that may be passed when creating a Ptr, to make it contain a default value as its pointee. More...
 
class  PtrGuard
 Helper guard to allow mutation on a pointee for the lifescope of the PtrGuard<T> but then reassigning to the source Ptr upon its destruction. More...
 
struct  PtrGuardUniqueFlag
 Flag that may be passed when creating a PtrGuard. More...
 
class  RuntimeServices
 Runtime service that is used by operators. More...
 
class  Source
 Generic opaque handle to a source (provenance). More...
 
class  Span
 The class template span describes an object that can refer to a contiguous sequence of objects with the first element of the sequence at position zero. More...
 
class  SpanParam
 Same as Span but the constructor from a range is implicit, making it more convenient and safe to use as a function input parameter. More...
 
class  StopCallback
 A callback that can be attached to a StopToken. More...
 
class  StopSource
 A source that can be used to request a stop. More...
 
class  StopToken
 A token that can be used to check if a stop has been requested. More...
 
class  String
 The string class used by Amino. More...
 
class  StringLiteral
 
class  StringView
 String view class (similar to std::string_view). More...
 
class  TaskNotifier
 Class referencing (non-owning) a concrete ITaskObserver. More...
 
class  TaskObserver
 Class managing (with unique ownership) a concrete ITaskObserver. More...
 
class  TaskObserverT
 Typed-version of TaskObserver. More...
 
class  TaskProgressNotifier
 RAII-style progress notifier helper. More...
 
class  TaskStatus
 The completion status of a task. More...
 
class  TypeId
 Type identifier for a type. More...
 

Typedefs

template<unsigned Dimension, typename T >
using ArrayD_t = Internal::MultiDimensionalArray_t< Dimension, T >
 Helper alias for multidimensional array types. More...
 
typedef EntityIndexedList< const Type > TypeConstIndexedList
 

Enumerations

enum class  MessageKind : int { eError , eWarning , eInfo , eDebug }
 The kind of message (error, warning, info, debug). More...
 
enum class  RuntimeMessageCategory : unsigned short { kError = 1 , kWarning = 2 , kInfo = 3 }
 Category of the message logged at runtime (when executing a graph). More...
 

Functions

void swap (Any &lhs, Any &rhs) noexcept
 Swap the payloads of two instances of Any. More...
 
template<class ValueType , typename = std::enable_if_t<!std::is_same<void, ValueType>::value>>
std::add_pointer_t< std::add_const_t< ValueType > > any_cast (Any const *v) noexcept
 Cast an instance of Any to a payload type. More...
 
template<class ValueType , typename = std::enable_if_t<!std::is_same<void, ValueType>::value>>
std::add_pointer_t< ValueType > any_cast (Any *v) noexcept
 Cast an instance of Any to a payload type. More...
 
template<class ValueType , typename = std::enable_if_t<std::is_same<void, ValueType>::value>>
void const * any_cast (Any const *v) noexcept
 Get the pointer the payload of the Any as const void*. More...
 
template<typename ValueType >
ValueType any_cast (Any const &v) noexcept
 Cast an instance of Any to a payload type. More...
 
template<typename ValueType >
ValueType any_cast (Any &&v) noexcept
 Cast an instance of Any to a payload type. More...
 
template<typename T >
 Ptr (MutablePtr< T >) -> Ptr< T >
 Deduction guide for Ptr. More...
 
template<class T >
void swap (Ptr< T > &lhs, Ptr< T > &rhs) noexcept
 Swap two pointers. More...
 
template<class T >
void swap (MutablePtr< T > &lhs, MutablePtr< T > &rhs) noexcept
 Swap two pointers. More...
 
template<class T , class... Args>
Ptr< T > newClassPtr (Args &&... args)
 Creates a Ptr holding a new T constructed from the given arguments. More...
 
template<class T , class E >
Ptr< T > newClassPtr (std::initializer_list< E > list)
 Creates a Ptr holding a new T constructed from the given initializer_list. More...
 
template<class T , class... Args>
MutablePtr< T > newMutablePtr (Args &&... args)
 Creates a MutablePtr holding a new T constructed from the given arguments. More...
 
template<class T , class E >
MutablePtr< T > newMutablePtr (std::initializer_list< E > list)
 Creates a MutablePtr holding a new T constructed from the given initializer_list. More...
 
AMINO_CORE_SHARED_DECL void swap (String &x, String &y)
 Swap two strings( non member ) More...
 
std::size_t hash_value (String const &b)
 Boost hash specialization for Amino::String. More...
 
std::ostream & operator<< (std::ostream &os, const String &str)
 Insert the contents of the string str into the output stream os. More...
 
template<typename T >
TypeId getTypeId () noexcept
 Returns the TypeId for the given Type. More...
 
 AMINO_INTERNAL_DEPRECATED ("Amino::isJobCancelled is deprecated and now always returns false. " "Use a 'StopToken const& jobport instead. ") inline bool isJobCancelled()
 
template<typename T >
constexpr void warn_if_unsupported_element ()
 Helpers to produce a warning on unsupported element types when constructing Amino::Array of such types. More...
 
template<typename T >
 PtrGuard (Ptr< T > &) -> PtrGuard< T >
 Deduction guide for PtrGuard. More...
 
template<typename T >
 PtrGuard (Ptr< T > &, PtrGuardUniqueFlag) -> PtrGuard< T >
 Deduction guide for PtrGuard. More...
 
Equality comparison
template<class T , class U >
bool operator== (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator== (const Ptr< T > &x, std::nullptr_t) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator== (std::nullptr_t, const Ptr< T > &y) noexcept
 Return true if pointers are equal. More...
 
template<class T , class U >
bool operator!= (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Return true if pointers are not equal. More...
 
template<class T >
bool operator!= (const Ptr< T > &x, std::nullptr_t) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator!= (std::nullptr_t, const Ptr< T > &y) noexcept
 Return true if pointers are equal. More...
 
Ordering comparison
template<class T , class U >
bool operator< (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator< (const Ptr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator< (std::nullptr_t, const Ptr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator> (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator> (const Ptr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator> (std::nullptr_t, const Ptr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator<= (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator<= (const Ptr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator<= (std::nullptr_t, const Ptr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator>= (Ptr< T > const &x, Ptr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator>= (const Ptr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator>= (std::nullptr_t, const Ptr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator< (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator< (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator< (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator> (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator> (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator> (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator<= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator<= (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator<= (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Compares the pointer values. More...
 
template<class T , class U >
bool operator>= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator>= (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Compares the pointer values. More...
 
template<class T >
bool operator>= (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Compares the pointer values. More...
 
Comparison operator with nullptr.
template<class T , class U >
bool operator== (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator== (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator== (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Return true if pointers are equal. More...
 
template<class T , class U >
bool operator!= (MutablePtr< T > const &x, MutablePtr< U > const &y) noexcept
 Return true if pointers are not equal. More...
 
template<class T >
bool operator!= (const MutablePtr< T > &x, std::nullptr_t) noexcept
 Return true if pointers are equal. More...
 
template<class T >
bool operator!= (std::nullptr_t, const MutablePtr< T > &y) noexcept
 Return true if pointers are equal. More...
 
Pointer casts
template<class T , class U >
Ptr< T > static_pointer_cast (Ptr< U > const &ptr) noexcept
 Static pointer cast. More...
 
template<class T , class U >
Ptr< T > static_pointer_cast (Ptr< U > &&ptr) noexcept
 Static pointer cast. More...
 
template<class T , class U >
Ptr< T > dynamic_pointer_cast (Ptr< U > const &ptr) noexcept
 Dynamic pointer cast. More...
 
template<class T , class U >
Ptr< T > dynamic_pointer_cast (Ptr< U > &&ptr) noexcept
 Dynamic pointer cast. More...
 
template<typename T >
std::enable_if_t< PtrInternal::DefaultPtrTraits::has_default_class< T >::value, Ptr< T > > makeDefaultPtr ()
 Creates a Ptr holding the default value for T. More...
 
template<typename T >
std::enable_if_t< PtrInternal::DefaultPtrTraits::is_array< T >::value, Ptr< T > > makeDefaultPtr ()
 Creates a Ptr holding the default value for T. More...
 
template<typename T >
std::enable_if_t< !PtrInternal::DefaultPtrTraits::is_defaultable< T >::value, Ptr< T > > makeDefaultPtr ()
 Creates a Ptr holding the default value for T. More...
 
template<typename T >
PtrGuard< T > createPtrGuard (Ptr< T > &src)
 Create a PtrGuard for the given Ptr. More...
 
template<typename T1 , typename T2 >
PtrGuard< T1 > createPtrGuard (Ptr< T2 > &src)
 Create a PtrGuard for the given Ptr. More...
 
template<typename T >
PtrGuard< T > createPtrGuard (Ptr< T > &src, PtrGuardUniqueFlag)
 Create a PtrGuard for the given Ptr. More...
 
template<typename T >
 Span (T *, size_t) -> Span< T >
 Deduction guides for Span. More...
 
template<typename T >
 Span (T *, T *) -> Span< T >
 Deduction guides for Span. More...
 
template<typename R >
 Span (R &&) -> Span< std::remove_pointer_t< decltype(std::declval< R >().data())> >
 Deduction guides for Span. More...
 
template<typename T >
 SpanParam (T *, size_t) -> SpanParam< T >
 Deduction guides for SpanParam. More...
 
template<typename T >
 SpanParam (T *, T *) -> SpanParam< T >
 Deduction guides for SpanParam. More...
 
template<typename R >
 SpanParam (R &&) -> SpanParam< std::remove_pointer_t< decltype(std::declval< R >().data())> >
 Deduction guides for SpanParam. More...
 
template<typename Callback >
 StopCallback (StopToken const &, Callback) -> StopCallback< Callback >
 Deduction guides for StopCallback. More...
 
template<typename Callback >
 StopCallback (StopToken &&, Callback) -> StopCallback< Callback >
 Deduction guides for StopCallback. More...
 
AMINO_CORE_SHARED_DECL String operator+ (const String &lhs, const String &rhs)
 Concatenation operators( non member ) More...
 
AMINO_CORE_SHARED_DECL String operator+ (const String &lhs, const char *rhs)
 Concatenation operators( non member ) More...
 
AMINO_CORE_SHARED_DECL String operator+ (const char *lhs, const String &rhs)
 Concatenation operators( non member ) More...
 
AMINO_CORE_SHARED_DECL String operator+ (const String &lhs, char rhs)
 Concatenation operators( non member ) More...
 
AMINO_CORE_SHARED_DECL String operator+ (char lhs, const String &rhs)
 Concatenation operators( non member ) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator== (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator!= (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator< (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator> (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator<= (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > operator>= (LHS const &lhs, RHS &&rhs)
 Relational operators (if Amino::String is on the right hand side) More...
 
AMINO_CORE_SHARED_DECL String to_string (signed char value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (signed short value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (signed int value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (signed long long value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (unsigned char value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (unsigned short value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (unsigned int value)
 Converts a integral value to a string (in base 10). More...
 
AMINO_CORE_SHARED_DECL String to_string (unsigned long long value)
 Converts a integral value to a string (in base 10). More...
 

C++ representation of built-in Amino data types at runtime.

Amino provides many integral data types that can flow in between nodes within a graph. Namely, those are:

  • Signed integers: char, short, int, long
  • Unsigned integers: uchar, ushort, uint, ulong
  • Floating-points: float, double
  • Boolean: bool
  • Enumerations

Each of those is represented by a matching C++ data type, defined by one the following type alias.

Warning
The Amino compiler and runtime requires the exact type listed below be used.
enum class  enum_t : enum_underlying_t
 Type alias for a standin for a Amino's enumeration type. More...
 
using char_t = signed char
 Type alias for Amino's char type, a signed 8-bit integer. More...
 
using short_t = signed short
 Type alias for Amino's short type, a signed 16-bit integer. More...
 
using int_t = signed int
 Type alias for Amino's int type, a signed 32-bit integer. More...
 
using long_t = signed long long
 Type alias for Amino's long type, a signed 64-bit integer. More...
 
using uchar_t = unsigned char
 Type alias for Amino's uchar type, an unsigned 8-bit integer. More...
 
using ushort_t = unsigned short
 Type alias for Amino's ushort type, an unsigned 16-bit integer. More...
 
using uint_t = unsigned int
 Type alias for Amino's uint type, an unsigned 32-bit integer. More...
 
using ulong_t = unsigned long long
 Type alias for Amino's ulong type, an unsigned 64-bit integer. More...
 
using float_t = float
 Type alias for Amino's 32-bit float-point number. More...
 
using double_t = double
 Type alias for Amino's 64-bit float-point number. More...
 
using bool_t = bool
 Type alias for Amino's bool type, a boolean. More...
 
using enum_underlying_t = int_t
 Type alias for the underlying type of Amino's enumerations. More...
 

Typedef Documentation

◆ ArrayD_t

template<unsigned Dimension, typename T >
using Amino::ArrayD_t = typedef Internal::MultiDimensionalArray_t<Dimension, T>

Helper alias for multidimensional array types.

Declaring multidimenstional array can yield very long type names and make the code hard to read. Using this alias can therefore greatly help with code readability and code maintainability.

For example:

// The two type aliases resolve to the same type.
// But the version using Amino::ArrayD_t is much more concise, easier to
// understand and read.
using ArrayInt3D_1 =
using ArrayInt3D_2 = Amino::ArrayD_t<3, int>;
static_assert(std::is_same<ArrayInt3D_1,ArrayInt3D_2>::value, "");
Internal::MultiDimensionalArray_t< Dimension, T > ArrayD_t
Helper alias for multidimensional array types.
Definition: Array.h:66
Define a Amino array of elements of type T.
Definition: Array.h:105

Note that Ptr are used to manage individual array element types. This is always necessary in order to use those arrays in Amino graphs, since array types must always be managed by Ptr when used in Amino graphs.

Definition at line 66 of file Array.h.

◆ bool_t

using Amino::bool_t = typedef bool

Type alias for Amino's bool type, a boolean.

Definition at line 79 of file BuiltInTypes.h.

◆ char_t

using Amino::char_t = typedef signed char

Type alias for Amino's char type, a signed 8-bit integer.

Definition at line 49 of file BuiltInTypes.h.

◆ double_t

using Amino::double_t = typedef double

Type alias for Amino's 64-bit float-point number.

Definition at line 76 of file BuiltInTypes.h.

◆ enum_underlying_t

Type alias for the underlying type of Amino's enumerations.

Definition at line 82 of file BuiltInTypes.h.

◆ float_t

using Amino::float_t = typedef float

Type alias for Amino's 32-bit float-point number.

Definition at line 73 of file BuiltInTypes.h.

◆ int_t

using Amino::int_t = typedef signed int

Type alias for Amino's int type, a signed 32-bit integer.

Definition at line 55 of file BuiltInTypes.h.

◆ long_t

using Amino::long_t = typedef signed long long

Type alias for Amino's long type, a signed 64-bit integer.

Definition at line 58 of file BuiltInTypes.h.

◆ short_t

using Amino::short_t = typedef signed short

Type alias for Amino's short type, a signed 16-bit integer.

Definition at line 52 of file BuiltInTypes.h.

◆ TypeConstIndexedList

Definition at line 36 of file TypeTranslation.h.

◆ uchar_t

using Amino::uchar_t = typedef unsigned char

Type alias for Amino's uchar type, an unsigned 8-bit integer.

Definition at line 61 of file BuiltInTypes.h.

◆ uint_t

using Amino::uint_t = typedef unsigned int

Type alias for Amino's uint type, an unsigned 32-bit integer.

Definition at line 67 of file BuiltInTypes.h.

◆ ulong_t

using Amino::ulong_t = typedef unsigned long long

Type alias for Amino's ulong type, an unsigned 64-bit integer.

Definition at line 70 of file BuiltInTypes.h.

◆ ushort_t

using Amino::ushort_t = typedef unsigned short

Type alias for Amino's ushort type, an unsigned 16-bit integer.

Definition at line 64 of file BuiltInTypes.h.

Enumeration Type Documentation

◆ enum_t

enum class Amino::enum_t : enum_underlying_t
strong

Type alias for a standin for a Amino's enumeration type.

Can be useful to define type traits, or to create overload sets with an overload expecting an enum type, which may have an implementation that differs from the overload taking the underlying type of the enum type for example.

Definition at line 90 of file BuiltInTypes.h.

◆ MessageKind

enum class Amino::MessageKind : int
strong

The kind of message (error, warning, info, debug).

Enumerator
eError 
eWarning 
eInfo 
eDebug 

Definition at line 40 of file Message.h.

◆ RuntimeMessageCategory

enum class Amino::RuntimeMessageCategory : unsigned short
strong

Category of the message logged at runtime (when executing a graph).

Enumerator
kError 

The message refers to an error that prevents the regular execution of the current action.

kWarning 

The message refers to a warning that doesn't prevent the execution of the current action.

kInfo 

The message provides information to the user.

Definition at line 29 of file RuntimeMessageCategory.h.

Function Documentation

◆ AMINO_INTERNAL_DEPRECATED()

Amino::AMINO_INTERNAL_DEPRECATED ( "Amino::isJobCancelled is deprecated and now always returns false. " "Use a 'StopToken const& jobport instead. "  )

Definition at line 30 of file Cancellation.h.

◆ any_cast() [1/5]

template<typename ValueType >
ValueType Amino::any_cast ( Any &&  v)
inlinenoexcept

Cast an instance of Any to a payload type.

If the requested type ValueType is the same as the payload type of the Any, then the returned value will be move constructed from the payload of the Any.

If the requested type ValueType is not the same as the payload type of the Any instance, a default value of the requested type will be returned.

In both cases, the rvalue Any will be reset after this call (the Any argument is a sink argument).

Template Parameters
ValueTypeThe payload type
Parameters
vThe instance of Any to be casted to the ValueType

Definition at line 481 of file Any.h.

◆ any_cast() [2/5]

template<class ValueType , typename = std::enable_if_t<!std::is_same<void, ValueType>::value>>
std::add_pointer_t< ValueType > Amino::any_cast ( Any v)
inlinenoexcept

Cast an instance of Any to a payload type.

If the requested type ValueType is the same as the payload type of the Any instance, a pointer to the payload of the any will be returned.

If the requested type ValueType is not the same as the payload type of the Any instance, a nullptr will be returned.

Template Parameters
ValueTypeThe payload type
Parameters
vThe instance of Any to be casted to the ValueType

Definition at line 404 of file Any.h.

◆ any_cast() [3/5]

template<typename ValueType >
ValueType Amino::any_cast ( Any const &  v)
inlinenoexcept

Cast an instance of Any to a payload type.

If the requested type ValueType is the same as the payload type of the Any, then the returned value will be copy constructed from the payload of the Any.

If the requested type ValueType is not the same as the payload type of the Any instance, a default value of the requested type will be returned.

Template Parameters
ValueTypeThe payload type
Parameters
vThe instance of Any to be casted to the ValueType

Definition at line 455 of file Any.h.

◆ any_cast() [4/5]

template<class ValueType , typename = std::enable_if_t<!std::is_same<void, ValueType>::value>>
std::add_pointer_t< std::add_const_t< ValueType > > Amino::any_cast ( Any const *  v)
inlinenoexcept

Cast an instance of Any to a payload type.

If the requested type ValueType is the same as the payload type of the Any instance, a const pointer to the payload of the any will be returned.

If the requested type ValueType is not the same as the payload type of the Any instance, a nullptr will be returned.

Template Parameters
ValueTypeThe payload type
Parameters
vThe instance of Any to be casted to the ValueType

Definition at line 380 of file Any.h.

◆ any_cast() [5/5]

template<class ValueType , typename = std::enable_if_t<std::is_same<void, ValueType>::value>>
void const * Amino::any_cast ( Any const *  v)
inlinenoexcept

Get the pointer the payload of the Any as const void*.

This is a special syntax for extracting the raw payload of an Any. If the Any has a value, a void pointer to the payload value is returned. Otherwise, a nullptr will be returned. This can be used in cases where the caller knows something about the payload (base class, memory layout, etc.), but not the exact precise type.

This can also be useful if the payload is known to be a Ptr but the type of the pointee is unknown, and the caller just needs to get the type erased Ptr<void>.

Warning
Must be very carefull when dealing with type erased types. Recall the static_cast from void pointer does not offset pointers like it does for non-void types. This can lead to hard to debug bugs with wrong pointer alignements for classes with multiple inheritance.
Parameters
vThe instance of Any to be casted to the ValueType

Definition at line 436 of file Any.h.

◆ createPtrGuard() [1/3]

template<typename T >
PtrGuard< T > Amino::createPtrGuard ( Ptr< T > &  src)

Create a PtrGuard for the given Ptr.

Equivalent to PtrGuard guard{src};.

Definition at line 2002 of file Ptr.h.

◆ createPtrGuard() [2/3]

template<typename T >
PtrGuard< T > Amino::createPtrGuard ( Ptr< T > &  src,
PtrGuardUniqueFlag   
)

Create a PtrGuard for the given Ptr.

Equivalent to PtrGuard guard{src};.

Definition at line 2010 of file Ptr.h.

◆ createPtrGuard() [3/3]

template<typename T1 , typename T2 >
PtrGuard< T1 > Amino::createPtrGuard ( Ptr< T2 > &  src)

Create a PtrGuard for the given Ptr.

Equivalent to PtrGuard guard{src};.

Definition at line 2006 of file Ptr.h.

◆ dynamic_pointer_cast() [1/2]

template<class T , class U >
Ptr< T > Amino::dynamic_pointer_cast ( Ptr< U > &&  ptr)
inlinenoexcept

Dynamic pointer cast.

Creates a new instance of Ptr whose element type is obtained from the rhs element type using a dynamic_cast<> expression. The returned pointer shares the ownership of the owned object with the original pointer.

If the argument is an empty pointer, the result will only be an empty pointer.

Parameters
[in]ptrthe pointer to cast
Returns
the dynamic cast pointer

Definition at line 2071 of file Ptr.h.

◆ dynamic_pointer_cast() [2/2]

template<class T , class U >
Ptr< T > Amino::dynamic_pointer_cast ( Ptr< U > const &  ptr)
inlinenoexcept

Dynamic pointer cast.

Creates a new instance of Ptr whose element type is obtained from the rhs element type using a dynamic_cast<> expression. The returned pointer shares the ownership of the owned object with the original pointer.

If the argument is an empty pointer, the result will only be an empty pointer.

Parameters
[in]ptrthe pointer to cast
Returns
the dynamic cast pointer

Definition at line 2067 of file Ptr.h.

◆ getTypeId()

template<typename T >
TypeId Amino::getTypeId ( )
noexcept

Returns the TypeId for the given Type.

Definition at line 168 of file TypeId.h.

◆ hash_value()

std::size_t Amino::hash_value ( String const &  b)
inline

Boost hash specialization for Amino::String.

Definition at line 21 of file StringBoost.h.

◆ makeDefaultPtr() [1/3]

template<typename T >
std::enable_if_t< PtrInternal::DefaultPtrTraits::has_default_class< T >::value, Ptr< T > > Amino::makeDefaultPtr ( )

Creates a Ptr holding the default value for T.

See also
PtrDefaultFlag

Definition at line 1870 of file Ptr.h.

◆ makeDefaultPtr() [2/3]

template<typename T >
std::enable_if_t< PtrInternal::DefaultPtrTraits::is_array< T >::value, Ptr< T > > Amino::makeDefaultPtr ( )

Creates a Ptr holding the default value for T.

See also
PtrDefaultFlag

Definition at line 1875 of file Ptr.h.

◆ makeDefaultPtr() [3/3]

template<typename T >
std::enable_if_t< !PtrInternal::DefaultPtrTraits::is_defaultable< T >::value, Ptr< T > > Amino::makeDefaultPtr ( )

Creates a Ptr holding the default value for T.

See also
PtrDefaultFlag

Definition at line 1882 of file Ptr.h.

◆ newClassPtr() [1/2]

template<class T , class... Args>
Ptr< T > Amino::newClassPtr ( Args &&...  args)
inline

Creates a Ptr holding a new T constructed from the given arguments.

This convenience function invokes Amino::newClass<T>() to allocate the object, wraps it in a Amino::Ptr<T> and returns the Amino::Ptr.

Template Parameters
Tthe type of object to allocate
Argsthe types of the constructor arguments
Parameters
[in]argsthe arguments to pass to the constructor of the object
Returns
a Amino::Ptr to the allocated object

Definition at line 1913 of file Ptr.h.

◆ newClassPtr() [2/2]

template<class T , class E >
Ptr< T > Amino::newClassPtr ( std::initializer_list< E >  list)
inline

Creates a Ptr holding a new T constructed from the given initializer_list.

This allows writing simpler/shorter code. For example:

auto array1 = Amino::newClassPtr<Amino::Array<int>>({1, 2, 3, 4});
// instead of
auto array2 = Amino::newClassPtr<Amino::Array<int>>(
std::initializer_list<int>{1, 2, 3, 4});
Warning
The curly braces must contain at least one element and all the elements must have the exact same type. Otherwise the initializer_list's element type E can't be deduced, and therefore it won't compile.
Template Parameters
Tthe type of object to allocate
Ethe type of the elements of the initializer_list
Parameters
[in]listthe initializer_list to pass to the constructor
Returns
a Amino::Ptr to the allocated object

Definition at line 1940 of file Ptr.h.

◆ newMutablePtr() [1/2]

template<class T , class... Args>
MutablePtr< T > Amino::newMutablePtr ( Args &&...  args)
inline

Creates a MutablePtr holding a new T constructed from the given arguments.

Template Parameters
Tthe type of object to allocate
Argsthe types of the constructor arguments
Parameters
[in]argsthe arguments to pass to the constructor of the object
Returns
a Amino::MutablePtr to the allocated object

Definition at line 1962 of file Ptr.h.

◆ newMutablePtr() [2/2]

template<class T , class E >
MutablePtr< T > Amino::newMutablePtr ( std::initializer_list< E >  list)
inline

Creates a MutablePtr holding a new T constructed from the given initializer_list.

This allows writing simpler/shorter code. For example:

auto array1 = Amino::newMutablePtr<Amino::Array<int>>({1, 2, 3, 4});
// instead of
auto array2 = Amino::newMutablePtr<Amino::Array<int>>(
std::initializer_list<int>{1, 2, 3, 4});
Warning
The curly braces must contain at least one element and all the elements must have the exact same type. Otherwise the initializer_list's element type E can't be deduced, and therefore it won't compile.
Template Parameters
Tthe type of object to allocate
Ethe type of the elements of the initializer_list
Parameters
[in]listthe initializer_list to pass to the constructor
Returns
a Amino::MutablePtr to the allocated object

Definition at line 1990 of file Ptr.h.

◆ operator!=() [1/7]

template<class T >
bool Amino::operator!= ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Return true if pointers are equal.

Returns
x.get() == y.get()

Definition at line 1657 of file Ptr.h.

◆ operator!=() [2/7]

template<class T >
bool Amino::operator!= ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Return true if pointers are equal.

Returns true if the stored pointers of both arguments are pointing to the same object under implicit conversion rules.

Returns
x.get() == y.get()

Definition at line 1457 of file Ptr.h.

◆ operator!=() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator!= ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 780 of file String.h.

◆ operator!=() [4/7]

template<class T , class U >
bool Amino::operator!= ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Return true if pointers are not equal.

Returns
x.get() != y.get()

Definition at line 1649 of file Ptr.h.

◆ operator!=() [5/7]

template<class T , class U >
bool Amino::operator!= ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Return true if pointers are not equal.

Returns true if the stored pointers of both arguments are not pointing to the same object under implicit conversion rules.

Returns
x.get() != y.get()

Definition at line 1450 of file Ptr.h.

◆ operator!=() [6/7]

template<class T >
bool Amino::operator!= ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns
x.get() == y.get()

Definition at line 1664 of file Ptr.h.

◆ operator!=() [7/7]

template<class T >
bool Amino::operator!= ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns true if the stored pointers of both arguments are pointing to the same object under implicit conversion rules.

Returns
x.get() == y.get()

Definition at line 1464 of file Ptr.h.

◆ operator+() [1/5]

AMINO_CORE_SHARED_DECL String Amino::operator+ ( char  lhs,
const String rhs 
)

Concatenation operators( non member )

◆ operator+() [2/5]

AMINO_CORE_SHARED_DECL String Amino::operator+ ( const char *  lhs,
const String rhs 
)

Concatenation operators( non member )

◆ operator+() [3/5]

AMINO_CORE_SHARED_DECL String Amino::operator+ ( const String lhs,
char  rhs 
)

Concatenation operators( non member )

◆ operator+() [4/5]

AMINO_CORE_SHARED_DECL String Amino::operator+ ( const String lhs,
const char *  rhs 
)

Concatenation operators( non member )

◆ operator+() [5/5]

AMINO_CORE_SHARED_DECL String Amino::operator+ ( const String lhs,
const String rhs 
)

Concatenation operators( non member )

◆ operator<() [1/7]

template<class T >
bool Amino::operator< ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1695 of file Ptr.h.

◆ operator<() [2/7]

template<class T >
bool Amino::operator< ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1495 of file Ptr.h.

◆ operator<() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator< ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 785 of file String.h.

◆ operator<() [4/7]

template<class T , class U >
bool Amino::operator< ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1685 of file Ptr.h.

◆ operator<() [5/7]

template<class T , class U >
bool Amino::operator< ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1485 of file Ptr.h.

◆ operator<() [6/7]

template<class T >
bool Amino::operator< ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1702 of file Ptr.h.

◆ operator<() [7/7]

template<class T >
bool Amino::operator< ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1502 of file Ptr.h.

◆ operator<<()

std::ostream & Amino::operator<< ( std::ostream &  os,
const String str 
)
inline

Insert the contents of the string str into the output stream os.

Parameters
osThe output stream
strThe string to be inserted.
Returns
The same os output stream passed as argument.

Definition at line 47 of file StringStl.h.

References Amino::String::c_str().

◆ operator<=() [1/7]

template<class T >
bool Amino::operator<= ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1756 of file Ptr.h.

◆ operator<=() [2/7]

template<class T >
bool Amino::operator<= ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1555 of file Ptr.h.

◆ operator<=() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator<= ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 795 of file String.h.

◆ operator<=() [4/7]

template<class T , class U >
bool Amino::operator<= ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than or equal to the stored pointer of y under implicit conversion rules.

Returns
x.get() <= y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1748 of file Ptr.h.

◆ operator<=() [5/7]

template<class T , class U >
bool Amino::operator<= ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than or equal to the stored pointer of y under implicit conversion rules.

Returns
x.get() <= y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1548 of file Ptr.h.

◆ operator<=() [6/7]

template<class T >
bool Amino::operator<= ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1763 of file Ptr.h.

◆ operator<=() [7/7]

template<class T >
bool Amino::operator<= ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1562 of file Ptr.h.

◆ operator==() [1/7]

template<class T >
bool Amino::operator== ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Return true if pointers are equal.

Returns
x.get() == y.get()

Definition at line 1632 of file Ptr.h.

◆ operator==() [2/7]

template<class T >
bool Amino::operator== ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Return true if pointers are equal.

Returns true if the stored pointers of both arguments are pointing to the same object under implicit conversion rules.

Returns
x.get() == y.get()

Definition at line 1429 of file Ptr.h.

◆ operator==() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator== ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 775 of file String.h.

◆ operator==() [4/7]

template<class T , class U >
bool Amino::operator== ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns
x.get() == y.get()

Definition at line 1623 of file Ptr.h.

◆ operator==() [5/7]

template<class T , class U >
bool Amino::operator== ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns true if the stored pointers of both arguments are pointing to the same object under implicit conversion rules.

Returns
x.get() == y.get()

Definition at line 1422 of file Ptr.h.

◆ operator==() [6/7]

template<class T >
bool Amino::operator== ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns
x.get() == y.get()

Definition at line 1639 of file Ptr.h.

◆ operator==() [7/7]

template<class T >
bool Amino::operator== ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Return true if pointers are equal.

Returns true if the stored pointers of both arguments are pointing to the same object under implicit conversion rules.

Returns
x.get() == y.get()

Definition at line 1436 of file Ptr.h.

◆ operator>() [1/7]

template<class T >
bool Amino::operator> ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1725 of file Ptr.h.

◆ operator>() [2/7]

template<class T >
bool Amino::operator> ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1525 of file Ptr.h.

◆ operator>() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator> ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 790 of file String.h.

◆ operator>() [4/7]

template<class T , class U >
bool Amino::operator> ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is greater than the stored pointer of y under implicit conversion rules.

Returns
x.get() > y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1718 of file Ptr.h.

◆ operator>() [5/7]

template<class T , class U >
bool Amino::operator> ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is greater than the stored pointer of y under implicit conversion rules.

Returns
x.get() > y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1518 of file Ptr.h.

◆ operator>() [6/7]

template<class T >
bool Amino::operator> ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1732 of file Ptr.h.

◆ operator>() [7/7]

template<class T >
bool Amino::operator> ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1532 of file Ptr.h.

◆ operator>=() [1/7]

template<class T >
bool Amino::operator>= ( const MutablePtr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1787 of file Ptr.h.

◆ operator>=() [2/7]

template<class T >
bool Amino::operator>= ( const Ptr< T > &  x,
std::nullptr_t   
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1585 of file Ptr.h.

◆ operator>=() [3/7]

template<typename LHS , typename RHS >
AMINO_INTERNAL_FORCEINLINE Internal::enable_if_rhs_compare< LHS, RHS > Amino::operator>= ( LHS const &  lhs,
RHS &&  rhs 
)

Relational operators (if Amino::String is on the right hand side)

Definition at line 800 of file String.h.

◆ operator>=() [4/7]

template<class T , class U >
bool Amino::operator>= ( MutablePtr< T > const &  x,
MutablePtr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is greater than or equal to the stored pointer of y under implicit conversion rules.

Returns
x.get() >= y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1779 of file Ptr.h.

◆ operator>=() [5/7]

template<class T , class U >
bool Amino::operator>= ( Ptr< T > const &  x,
Ptr< U > const &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is greater than or equal to the stored pointer of y under implicit conversion rules.

Returns
x.get() >= y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1578 of file Ptr.h.

◆ operator>=() [6/7]

template<class T >
bool Amino::operator>= ( std::nullptr_t  ,
const MutablePtr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1794 of file Ptr.h.

◆ operator>=() [7/7]

template<class T >
bool Amino::operator>= ( std::nullptr_t  ,
const Ptr< T > &  y 
)
inlinenoexcept

Compares the pointer values.

Returns true if the stored pointer of x is less than the stored pointer of y under implicit conversion rules.

Returns
x.get() < y.get(); where the pointer values are converted to the composite pointer type of T* and U* before the comparison is made.

Definition at line 1592 of file Ptr.h.

◆ Ptr()

template<typename T >
Amino::Ptr ( MutablePtr< T >  ) -> Ptr< T >

Deduction guide for Ptr.

Referenced by Amino::Ptr< T >::operator=(), and Amino::Ptr< T >::reset().

◆ PtrGuard() [1/2]

template<typename T >
Amino::PtrGuard ( Ptr< T > &  ) -> PtrGuard< T >

Deduction guide for PtrGuard.

◆ PtrGuard() [2/2]

template<typename T >
Amino::PtrGuard ( Ptr< T > &  ,
PtrGuardUniqueFlag   
) -> PtrGuard< T >

Deduction guide for PtrGuard.

◆ Span() [1/3]

template<typename R >
Amino::Span ( R &&  ) -> Span< std::remove_pointer_t< decltype(std::declval< R >().data())> >

Deduction guides for Span.

◆ Span() [2/3]

template<typename T >
Amino::Span ( T *  ,
size_t   
) -> Span< T >

Deduction guides for Span.

◆ Span() [3/3]

template<typename T >
Amino::Span ( T *  ,
T *   
) -> Span< T >

Deduction guides for Span.

◆ SpanParam() [1/3]

template<typename R >
Amino::SpanParam ( R &&  ) -> SpanParam< std::remove_pointer_t< decltype(std::declval< R >().data())> >

Deduction guides for SpanParam.

◆ SpanParam() [2/3]

template<typename T >
Amino::SpanParam ( T *  ,
size_t   
) -> SpanParam< T >

Deduction guides for SpanParam.

◆ SpanParam() [3/3]

template<typename T >
Amino::SpanParam ( T *  ,
T *   
) -> SpanParam< T >

Deduction guides for SpanParam.

◆ static_pointer_cast() [1/2]

template<class T , class U >
Ptr< T > Amino::static_pointer_cast ( Ptr< U > &&  ptr)
inlinenoexcept

Static pointer cast.

Creates a new instance of Ptr whose element type is obtained from the rhs element type using a static_cast<> expression. The returned pointer shares the ownership of the owned object with the original pointer.

If the argument is an empty pointer, the result will only be an empty pointer.

Parameters
[in]ptrthe pointer to cast
Returns
the static cast pointer

Definition at line 2060 of file Ptr.h.

◆ static_pointer_cast() [2/2]

template<class T , class U >
Ptr< T > Amino::static_pointer_cast ( Ptr< U > const &  ptr)
inlinenoexcept

Static pointer cast.

Creates a new instance of Ptr whose element type is obtained from the rhs element type using a static_cast<> expression. The returned pointer shares the ownership of the owned object with the original pointer.

If the argument is an empty pointer, the result will only be an empty pointer.

Parameters
[in]ptrthe pointer to cast
Returns
the static cast pointer

Definition at line 2056 of file Ptr.h.

◆ StopCallback() [1/2]

template<typename Callback >
Amino::StopCallback ( StopToken &&  ,
Callback   
) -> StopCallback< Callback >

Deduction guides for StopCallback.

◆ StopCallback() [2/2]

template<typename Callback >
Amino::StopCallback ( StopToken const &  ,
Callback   
) -> StopCallback< Callback >

Deduction guides for StopCallback.

◆ swap() [1/4]

void Amino::swap ( Any lhs,
Any rhs 
)
inlinenoexcept

Swap the payloads of two instances of Any.

Definition at line 358 of file Any.h.

Referenced by Amino::Any::swap(), Amino::Array< T >::swap(), and BifrostGraph::Executor::Owner< T >::swap().

◆ swap() [2/4]

template<class T >
void Amino::swap ( MutablePtr< T > &  lhs,
MutablePtr< T > &  rhs 
)
inlinenoexcept

Swap two pointers.

Exchanges the contents of the two Amino::MutablePtr.

Parameters
[in]lhsthe first pointer to swap
[in]rhsthe second pointer to swap

Definition at line 1808 of file Ptr.h.

Referenced by Amino::MutablePtr< T >::swap(), and Amino::Ptr< T >::swap().

◆ swap() [3/4]

template<class T >
void Amino::swap ( Ptr< T > &  lhs,
Ptr< T > &  rhs 
)
inlinenoexcept

Swap two pointers.

Exchanges the contents of the two smart pointers.

Parameters
[in]lhsthe first pointer to swap
[in]rhsthe second pointer to swap

Definition at line 1606 of file Ptr.h.

◆ swap() [4/4]

AMINO_CORE_SHARED_DECL void Amino::swap ( String x,
String y 
)

Swap two strings( non member )

Parameters
xThe first string
ythe second string

◆ to_string() [1/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( signed char  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [2/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( signed int  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [3/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( signed long long  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [4/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( signed short  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [5/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( unsigned char  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [6/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( unsigned int  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [7/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( unsigned long long  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ to_string() [8/8]

AMINO_CORE_SHARED_DECL String Amino::to_string ( unsigned short  value)

Converts a integral value to a string (in base 10).

(Same as std::to_string).

◆ warn_if_unsupported_element()

template<typename T >
constexpr void Amino::warn_if_unsupported_element ( )
inlineconstexpr

Helpers to produce a warning on unsupported element types when constructing Amino::Array of such types.

Definition at line 636 of file Array.h.