LibGimbal  1.0.0
Ultimate C17/C++20 Cross-Language Runtime Framework and Meta Type System
gimbal Namespace Reference

Namespaces

 impl
 
 tags
 

Data Structures

class  ByteArray
 
class  CallRecord
 
class  Class
 
class  ClassBase
 
class  ClassRef
 
struct  container_value
 
class  Context
 
class  Dispatcher
 
class  DispatcherBase
 
class  DispatcherView
 
class  Exception
 
class  FlexibleString
 
class  FlexibleVector
 
struct  GblMetaInstance
 
class  HashMap
 
class  HashSet
 
class  HashSetBase
 
struct  HashSetIterator
 
class  HashSetView
 
class  InstanceBase
 
class  InterfaceClass
 
struct  iterator_value
 
class  MetaInstance
 
class  MetaInstanceBase
 
class  MetaInstanceView
 
class  MetaType
 
struct  MetaTypeVTable
 
class  Object
 
class  ObjectBase
 
class  PrimitiveBase
 
class  PrimitiveCompatible
 
class  Quark
 
class  RandomAccessIterable
 
struct  RandomAccessIterator
 
class  ReadWriteContiguousIndexable
 
class  ReadWriteIndexable
 
class  SourceLocation
 
class  StackFrame
 
class  StaticType
 
class  StdException
 
class  String
 
struct  StringTraits
 
class  StringView
 
class  StringViewBase
 
class  Thread
 
class  Type
 
class  TypeFlags
 
class  TypeInfo
 
class  Vector
 
class  VectorView
 
class  VectorViewBase
 
class  Version
 

Typedefs

template<typename C >
using container_value_t = typename container_value< C >::type
 
template<typename C >
using iterator_value_t = typename iterator_value< C >::type
 
typedef struct gimbal::GblMetaInstance GblMetaInstance
 
using Bool = ::GblBool
 
using Size = ::GblSize
 
using Float = ::GblFloat
 
using Int = ::GblInt
 
using UInt = ::GblUint
 
using Enum = ::GblEnum
 
using Hash = ::GblHash
 
using FnPtr = ::GblFnPtr
 
using Ptr = ::GblPtr
 
using RefCount = ::GblRefCount
 

Enumerations

enum  Type : uint8_t {
  Success, Partial, Error, Unknown,
  Count
}
 

Functions

template<typename K , typename H , typename P >
 HashSetView (HashSet< K, H, P > base) -> HashSetView< K >
 
template<typename T >
 VectorView (Vector< T > base) -> VectorView< T >
 
template<generic_container_readable Container, typename T = container_value_t<Container>>
 Vector (const Container &c, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< T >)) -> Vector< T >
 
template<std::input_iterator Iterator, typename T = iterator_value_t<Iterator>>
 Vector (Iterator begin, Iterator end, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< T >)) -> Vector< T >
 
template<typename T >
 Vector (VectorView< T > view, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< T >)) -> Vector< T >
 
template<typename T , size_t N>
 Vector (std::array< T, N > array, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< T >)) -> Vector< T >
 
 Vector (GblVector gblVec, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< void * >)) -> Vector< void * >
 
 Vector (const GblVector *pVec, Context *pCtx=nullptr, Size allocSize=sizeof(Vector< void * >)) -> Vector< void * >
 
template<typename T >
gimbal::Size erase (gimbal::Vector< T > &vec, const T &value)
 
template<typename T , typename Pred >
gimbal::Size erase_if (gimbal::Vector< T > &vec, Pred pred)
 
template<typename T >
void swap (gimbal::Vector< T > &lhs, gimbal::Vector< T > &rhs)
 
decltype(auto) constptr_cast (auto &&value)
 
 GBL_CHECK_C_CPP_TYPE_COMPAT (SourceLocation, GblSourceLocation)
 
 GBL_CHECK_C_CPP_TYPE_COMPAT (CallRecord, GblCallRecord)
 
 GBL_CHECK_C_CPP_TYPE_COMPAT (StackFrame, GblStackFrame)
 
 GBL_TYPE_DECLARE_CPP (InvalidType, GBL_INVALID_TYPE)
 
 GBL_TYPE_DECLARE_CPP (InterfaceType, GBL_INTERFACE_TYPE)
 
 GBL_TYPE_DECLARE_CPP (IVariantType, GBL_IVARIANT_TYPE)
 
 GBL_TYPE_DECLARE_CPP (NilType, GBL_NIL_TYPE)
 
 GBL_TYPE_DECLARE_CPP (BoolType, GBL_BOOL_TYPE)
 
 GBL_TYPE_DECLARE_CPP (CharType, GBL_CHAR_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Uint8Type, GBL_UINT8_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Uint16Type, GBL_UINT16_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Int16Type, GBL_INT16_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Uint32Type, GBL_UINT32_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Int32Type, GBL_INT32_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Uint64Type, GBL_UINT64_TYPE)
 
 GBL_TYPE_DECLARE_CPP (Int64Type, GBL_INT64_TYPE)
 
 GBL_TYPE_DECLARE_CPP (EnumType, GBL_ENUM_TYPE)
 
 GBL_TYPE_DECLARE_CPP (FlagsType, GBL_FLAGS_TYPE)
 
 GBL_TYPE_DECLARE_CPP (FloatType, GBL_FLOAT_TYPE)
 
 GBL_TYPE_DECLARE_CPP (DoubleType, GBL_DOUBLE_TYPE)
 
 GBL_TYPE_DECLARE_CPP (PointerType, GBL_POINTER_TYPE)
 
 GBL_TYPE_DECLARE_CPP (StringType, GBL_STRING_TYPE)
 
String operator+ (const gimbal::StringView &lhs, const gimbal::StringView &rhs)
 
String operator+ (const gimbal::StringView &lhs, const std::string_view &rhs)
 
String operator""_gstr (const char *pLiteral, std::size_t length)
 
constexpr Result (bool success) noexcept
 
constexpr Type getType (void) const noexcept
 
constexpr bool isUnknown (void) const noexcept
 
constexpr bool isSuccess (void) const noexcept
 
constexpr bool isPartial (void) const noexcept
 
constexpr bool isError (void) const noexcept
 
constexpr bool isUnavailable (void) const noexcept
 
constexpr bool isType (Type type) const noexcept
 
constexpr operator bool () const noexcept
 
 GBL_ENUM_TABLE_DECLARE_CPP_END (GBL_META_RESULT_TABLE)
 
 GBL_ENUM_TABLE_DECLARE_CPP (GBL_META_LOG_LEVEL_TABLE)
 
 GBL_CHECK_C_CPP_TYPE_COMPAT (Version, GblVersion)
 

Variables

template<typename It , typename T >
concept type_compatible_iterator_readable
 
template<typename It , typename T >
concept type_compatible_iterator_writable
 
template<typename It , typename T >
concept type_compatible_iterator
 
template<typename It , typename T >
concept type_compatible_iterator_read_only
 
template<typename It >
concept contiguous_iterator
 
template<typename It >
concept forward_iterator
 
template<typename C , typename T >
concept type_compatible_container_readable
 
template<typename C , typename T >
concept type_compatible_container_writable
 
template<typename C , typename T >
concept type_compatible_container
 
template<typename C , typename T >
concept type_compatible_container_read_only
 
template<typename C , typename T >
concept type_compatible_contiguous_container_readable
 
template<typename C , typename T >
concept type_compatible_contiguous_container_writable
 
template<typename C , typename T >
concept type_compatible_contiguous_container
 
template<typename C , typename T >
concept type_compatible_contiguous_container_read_only
 
template<typename C >
concept generic_container_readable
 
template<typename V >
concept vector_base
 
template<typename V , typename T >
concept type_compatible_vector_base
 
template<typename V1 , typename V2 >
concept vector_compatible_gbl
 
template<typename T >
concept string_base = std::is_base_of_v<gimbal::tags::StringBase, T>
 

Typedef Documentation

◆ Bool

using Bool = ::GblBool

Definition at line 18 of file gimbal_typedefs.hpp.

◆ container_value_t

using container_value_t = typename container_value<C>::type

Definition at line 111 of file gimbal_container.hpp.

◆ Enum

using Enum = ::GblEnum

Definition at line 23 of file gimbal_typedefs.hpp.

◆ Float

using Float = ::GblFloat

Definition at line 20 of file gimbal_typedefs.hpp.

◆ FnPtr

using FnPtr = ::GblFnPtr

Definition at line 25 of file gimbal_typedefs.hpp.

◆ GblMetaInstance

◆ Hash

Definition at line 24 of file gimbal_typedefs.hpp.

◆ Int

using Int = ::GblInt

Definition at line 21 of file gimbal_typedefs.hpp.

◆ iterator_value_t

using iterator_value_t = typename iterator_value<C>::type

Definition at line 120 of file gimbal_container.hpp.

◆ Ptr

using Ptr = ::GblPtr

Definition at line 26 of file gimbal_typedefs.hpp.

◆ RefCount

using RefCount = ::GblRefCount

Definition at line 28 of file gimbal_typedefs.hpp.

◆ Size

using Size = ::GblSize

Definition at line 19 of file gimbal_typedefs.hpp.

◆ UInt

using UInt = ::GblUint

Definition at line 22 of file gimbal_typedefs.hpp.

Enumeration Type Documentation

◆ Type

enum Type : uint8_t
strong
Enumerator
Success 
Partial 
Error 
Unknown 
Count 

Definition at line 11 of file gimbal_result.hpp.

Function Documentation

◆ constptr_cast()

decltype(auto) gimbal::constptr_cast ( auto &&  value)

Definition at line 17 of file gimbal_api_generators.hpp.

◆ erase()

gimbal::Size gimbal::erase ( gimbal::Vector< T > &  vec,
const T &  value 
)

Definition at line 647 of file gimbal_vector.hpp.

◆ erase_if()

gimbal::Size gimbal::erase_if ( gimbal::Vector< T > &  vec,
Pred  pred 
)

Definition at line 655 of file gimbal_vector.hpp.

◆ GBL_CHECK_C_CPP_TYPE_COMPAT() [1/4]

gimbal::GBL_CHECK_C_CPP_TYPE_COMPAT ( CallRecord  ,
GblCallRecord   
)

◆ GBL_CHECK_C_CPP_TYPE_COMPAT() [2/4]

gimbal::GBL_CHECK_C_CPP_TYPE_COMPAT ( SourceLocation  ,
GblSourceLocation   
)

◆ GBL_CHECK_C_CPP_TYPE_COMPAT() [3/4]

gimbal::GBL_CHECK_C_CPP_TYPE_COMPAT ( StackFrame  ,
GblStackFrame   
)

◆ GBL_CHECK_C_CPP_TYPE_COMPAT() [4/4]

gimbal::GBL_CHECK_C_CPP_TYPE_COMPAT ( Version  ,
GblVersion   
)

◆ GBL_ENUM_TABLE_DECLARE_CPP()

gimbal::GBL_ENUM_TABLE_DECLARE_CPP ( GBL_META_LOG_LEVEL_TABLE  )

◆ GBL_ENUM_TABLE_DECLARE_CPP_END()

gimbal::GBL_ENUM_TABLE_DECLARE_CPP_END ( GBL_META_RESULT_TABLE  )

◆ GBL_TYPE_DECLARE_CPP() [1/19]

gimbal::GBL_TYPE_DECLARE_CPP ( BoolType  ,
GBL_BOOL_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [2/19]

gimbal::GBL_TYPE_DECLARE_CPP ( CharType  ,
GBL_CHAR_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [3/19]

gimbal::GBL_TYPE_DECLARE_CPP ( DoubleType  ,
GBL_DOUBLE_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [4/19]

gimbal::GBL_TYPE_DECLARE_CPP ( EnumType  ,
GBL_ENUM_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [5/19]

gimbal::GBL_TYPE_DECLARE_CPP ( FlagsType  ,
GBL_FLAGS_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [6/19]

gimbal::GBL_TYPE_DECLARE_CPP ( FloatType  ,
GBL_FLOAT_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [7/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Int16Type  ,
GBL_INT16_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [8/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Int32Type  ,
GBL_INT32_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [9/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Int64Type  ,
GBL_INT64_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [10/19]

gimbal::GBL_TYPE_DECLARE_CPP ( InterfaceType  ,
GBL_INTERFACE_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [11/19]

gimbal::GBL_TYPE_DECLARE_CPP ( InvalidType  ,
GBL_INVALID_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [12/19]

gimbal::GBL_TYPE_DECLARE_CPP ( IVariantType  ,
GBL_IVARIANT_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [13/19]

gimbal::GBL_TYPE_DECLARE_CPP ( NilType  ,
GBL_NIL_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [14/19]

gimbal::GBL_TYPE_DECLARE_CPP ( PointerType  ,
GBL_POINTER_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [15/19]

gimbal::GBL_TYPE_DECLARE_CPP ( StringType  ,
GBL_STRING_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [16/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Uint16Type  ,
GBL_UINT16_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [17/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Uint32Type  ,
GBL_UINT32_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [18/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Uint64Type  ,
GBL_UINT64_TYPE   
)

◆ GBL_TYPE_DECLARE_CPP() [19/19]

gimbal::GBL_TYPE_DECLARE_CPP ( Uint8Type  ,
GBL_UINT8_TYPE   
)

◆ getType()

constexpr Type gimbal::getType ( void  ) const
constexprnoexcept

Definition at line 21 of file gimbal_result.hpp.

◆ HashSetView()

gimbal::HashSetView ( HashSet< K, H, P >  base) -> HashSetView< K >

◆ isError()

constexpr bool gimbal::isError ( void  ) const
constexprnoexcept

Definition at line 33 of file gimbal_result.hpp.

◆ isPartial()

constexpr bool gimbal::isPartial ( void  ) const
constexprnoexcept

Definition at line 32 of file gimbal_result.hpp.

◆ isSuccess()

constexpr bool gimbal::isSuccess ( void  ) const
constexprnoexcept

Definition at line 31 of file gimbal_result.hpp.

◆ isType()

constexpr bool gimbal::isType ( Type  type) const
constexprnoexcept

Definition at line 35 of file gimbal_result.hpp.

◆ isUnavailable()

constexpr bool gimbal::isUnavailable ( void  ) const
constexprnoexcept

Definition at line 34 of file gimbal_result.hpp.

◆ isUnknown()

constexpr bool gimbal::isUnknown ( void  ) const
constexprnoexcept

Definition at line 30 of file gimbal_result.hpp.

◆ operator bool()

constexpr gimbal::operator bool ( ) const
constexprnoexcept

Definition at line 37 of file gimbal_result.hpp.

◆ operator""_gstr()

String gimbal::operator""_gstr ( const char *  pLiteral,
std::size_t  length 
)
inline

Definition at line 402 of file gimbal_string.hpp.

◆ operator+() [1/2]

String gimbal::operator+ ( const gimbal::StringView lhs,
const gimbal::StringView rhs 
)
inline

Definition at line 394 of file gimbal_string.hpp.

◆ operator+() [2/2]

String gimbal::operator+ ( const gimbal::StringView lhs,
const std::string_view &  rhs 
)
inline

Definition at line 398 of file gimbal_string.hpp.

◆ Result()

constexpr gimbal::Result ( bool  success)
constexprnoexcept

Definition at line 19 of file gimbal_result.hpp.

◆ swap()

void gimbal::swap ( gimbal::Vector< T > &  lhs,
gimbal::Vector< T > &  rhs 
)

Definition at line 663 of file gimbal_vector.hpp.

◆ Vector() [1/6]

gimbal::Vector ( const Container &  c,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< T >) 
) -> Vector< T >

◆ Vector() [2/6]

gimbal::Vector ( const GblVector pVec,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< void * >) 
) -> Vector< void * >

◆ Vector() [3/6]

gimbal::Vector ( GblVector  gblVec,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< void * >) 
) -> Vector< void * >

◆ Vector() [4/6]

gimbal::Vector ( Iterator  begin,
Iterator  end,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< T >) 
) -> Vector< T >

◆ Vector() [5/6]

gimbal::Vector ( std::array< T, N >  array,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< T >) 
) -> Vector< T >

◆ Vector() [6/6]

gimbal::Vector ( VectorView< T >  view,
Context pCtx = nullptr,
Size  allocSize = sizeof(Vector< T >) 
) -> Vector< T >

◆ VectorView()

gimbal::VectorView ( Vector< T >  base) -> VectorView< T >

Variable Documentation

◆ contiguous_iterator

concept contiguous_iterator
Initial value:
=
std::input_or_output_iterator<It> &&
(std::is_base_of_v<std::contiguous_iterator_tag, It> ||
std::is_base_of_v<gimbal::tags::RandomAccessIteratorBase, It>)

Definition at line 39 of file gimbal_container.hpp.

◆ forward_iterator

concept forward_iterator
Initial value:
=
std::input_or_output_iterator<It> &&
std::is_base_of_v<std::forward_iterator_tag, It>

Definition at line 45 of file gimbal_container.hpp.

◆ generic_container_readable

concept generic_container_readable
Initial value:
=
requires(C c) {
{ std::cbegin(c) } -> std::input_or_output_iterator;
{ std::cend(c) } -> std::input_or_output_iterator;
}

Definition at line 98 of file gimbal_container.hpp.

◆ string_base

concept string_base = std::is_base_of_v<gimbal::tags::StringBase, T>

Definition at line 23 of file gimbal_string.hpp.

◆ type_compatible_container

concept type_compatible_container
Initial value:
=
type_compatible_container_readable<C, T> &&
type_compatible_container_writable<C, T>

Definition at line 64 of file gimbal_container.hpp.

◆ type_compatible_container_read_only

concept type_compatible_container_read_only
Initial value:
=
type_compatible_container_readable<C, T> &&
!type_compatible_container_writable<C, T>

Definition at line 69 of file gimbal_container.hpp.

◆ type_compatible_container_readable

concept type_compatible_container_readable
Initial value:
=
requires(C c) {
{ std::cbegin(c) } -> type_compatible_iterator_readable<T>;
{ std::cend(c) } -> type_compatible_iterator_readable<T>;
}

Definition at line 50 of file gimbal_container.hpp.

◆ type_compatible_container_writable

concept type_compatible_container_writable
Initial value:
=
requires(C c) {
{ std::begin(c) } -> type_compatible_iterator_writable<T>;
{ std::end(c) } -> type_compatible_iterator_writable<T>;
}

Definition at line 57 of file gimbal_container.hpp.

◆ type_compatible_contiguous_container

concept type_compatible_contiguous_container
Initial value:
=
type_compatible_contiguous_container_readable<C, T> &&
type_compatible_container_writable<C, T>

Definition at line 88 of file gimbal_container.hpp.

◆ type_compatible_contiguous_container_read_only

concept type_compatible_contiguous_container_read_only
Initial value:
=
type_compatible_contiguous_container_readable<C, T> &&
!type_compatible_container_writable<C, T>

Definition at line 93 of file gimbal_container.hpp.

◆ type_compatible_contiguous_container_readable

concept type_compatible_contiguous_container_readable
Initial value:
=
type_compatible_container<C, T> &&
requires(const C c) {
{ c.data() } -> std::same_as<const T*>;
}

Definition at line 74 of file gimbal_container.hpp.

◆ type_compatible_contiguous_container_writable

concept type_compatible_contiguous_container_writable
Initial value:
=
type_compatible_container<C, T> &&
requires(C c) {
{ c.data() } -> std::same_as<T*>;
}

Definition at line 81 of file gimbal_container.hpp.

◆ type_compatible_iterator

concept type_compatible_iterator
Initial value:
=
type_compatible_iterator_readable<It, T> &&
type_compatible_iterator_writable<It, T>

Definition at line 29 of file gimbal_container.hpp.

◆ type_compatible_iterator_read_only

concept type_compatible_iterator_read_only
Initial value:
=
type_compatible_iterator_readable<It, T> &&
!type_compatible_iterator_writable<It, T>

Definition at line 34 of file gimbal_container.hpp.

◆ type_compatible_iterator_readable

concept type_compatible_iterator_readable
Initial value:
=
std::input_iterator<It> &&
requires(It it, T t) {
{ t = *it };
}

Definition at line 18 of file gimbal_container.hpp.

◆ type_compatible_iterator_writable

concept type_compatible_iterator_writable
Initial value:
=
std::output_iterator<It, T>

Definition at line 25 of file gimbal_container.hpp.

◆ type_compatible_vector_base

concept type_compatible_vector_base
Initial value:
=
vector_base<V> &&
type_compatible_contiguous_container<V, T>

Definition at line 26 of file gimbal_vector.hpp.

◆ vector_base

concept vector_base
Initial value:
=
std::is_base_of_v<gimbal::tags::VectorBase, V> &&
requires(V v) {
typename V::value_type;
}

Definition at line 19 of file gimbal_vector.hpp.

◆ vector_compatible_gbl

concept vector_compatible_gbl
Initial value:
=
requires(V1 v1, V2 v2) {
typename V1::value_type;
typename V2::value_type;
} &&
std::same_as<typename V1::ValueType, typename V2::ValueType>

Definition at line 31 of file gimbal_vector.hpp.