Navigation
API > API/Runtime > API/Runtime/uLangCore > API/Runtime/uLangCore/uLang > API/Runtime/uLangCore/uLang/Common > API/Runtime/uLangCore/uLang/Common/Containers
Inheritance Hierarchy
- CSharedMix
- CAstNode
- CAstCompilationUnit
- CAstPackage
- CAstProject
- CExpressionBase
- CExprArchetypeInstantiation
- CExprAssignment
- CExprBinaryOp
- CExprShortCircuitAnd
- CExprShortCircuitOr
- CExprBreak
- CExprChar
- CExprClassDefinition
- CExprCompoundBase
- CExprCodeBlock
- CExprConcurrentBlockBase
- CExprRace
- CExprRush
- CExprSync
- CExprLet
- CExprMakeArray
- CExprMakeMap
- CExprMakeTuple
- CExprDefinition
- CExprDataDefinition
- CExprFunctionDefinition
- CExprIterationPairDefinition
- CExprTypeAliasDefinition
- CExprEnumDefinition
- CExprError
- CExprExternal
- CExprFunctionLiteral
- CExprIdentifierBase
- CExprEnumerationType
- CExprEnumLiteral
- CExprIdentifierBuiltInMacro
- CExprIdentifierClass
- CExprIdentifierData
- CExprIdentifierFunction
- CExprIdentifierModule
- CExprIdentifierModuleAlias
- CExprIdentifierOverloadedFunction
- CExprIdentifierTypeAlias
- CExprIdentifierTypeVariable
- CExprIdentifierUnresolved
- CExprInterfaceType
- CExprLocal
- CExprSelf
- CExprIf
- CExprImport
- CExprInterfaceDefinition
- CExprInvocation
- CExprBinaryArithmetic
- CExprComparison
- CExprQueryValue
- CExprUnaryArithmetic
- CExprInvokeType
- CExprIteration
- CExprConcurrentIteratedBase
- CExprRaceIterated
- CExprRushIterated
- CExprSyncIterated
- CExprLogic
- CExprMacroCall
- CExprMakeNamed
- CExprMakeRange
- CExprModuleDefinition
- CExprNewPointer
- CExprNumber
- CExprPath
- CExprPathPlusSymbol
- CExprPlaceholder
- CExprReturn
- CExprScopedAccessLevelDefinition
- CExprSnippet
- CExprString
- CExprSubBlockBase
- CExprBranch
- CExprDefer
- CExprLoop
- CExprProfileBlock
- CExprSpawn
- CExprTupleElement
- CExprType
- CExprTypeFormer
- CExprArrow
- CExprMapTypeFormer
- CExprTupleType
- CExprUnaryTypeFormer
- CExprArrayTypeFormer
- CExprGeneratorTypeFormer
- CExprOptionTypeFormer
- CExprSubtype
- CExprUnaryOp
- CExprLogicalNot
- CExprMakeOption
- CExprPointerToReference
- CExprReferenceToValue
- CExprSet
- CExprVar
- CIrConvertFromDynamic
- CIrConvertToDynamic
- CExprUsing
- CExprWhere
- CIrArrayAdd
- CIrArrayUnsafeCall
- CIrFor
- CIrForBody
- CIrMapAdd
- CCompatConstraintRoot
- CControlScope
- CDefinition
- CClassDefinition
- CScopedAccessLevelDefinition
- CDataDefinition
- CEnumeration
- CEnumerator
- CFunction
- CInterface
- CModule
- CModuleAlias
- CTypeAlias
- CTypeVariable
- CDiagnostics
- CProgramBuildManager
- CSemanticProgram
- CSourceModule
- CSourceFileModule
- CSourcePackage
- CSourceDataPackage
- CSourceFilePackage
- CSourceProject
- CSourceFileProject
- CSymbolTable
- CToolchain
- CToolchainPluginManager
- CTypeScope
- IFileSystem
- ILibLoader
- IModularFeature
- TModularFeature
- IAssemblerPass
- IIrGeneratorPass
- CIrGeneratorPass
- IParserPass
- CParserPass
- IPostIrFilter
- IPostSemanticAnalysisFilter
- IPostVstFilter
- CAvailableAttributeVstFilter
- ISemanticAnalyzerPass
- CSemanticAnalyzerPass
- TApiLayerInjection
- IIntraSemAnalysisInjection
- IPostParseInjection
- IPostSemAnalysisInjection
- IPreLinkInjection
- IPreParseInjection
- IPreSemAnalysisInjection
- IPreTranslateInjection
- IModularFeatureRegistry
- ISourceSnippet
- CSourceDataSnippet
- CSourceFileSnippet
- Node
- Assignment
- BinaryOp
- BinaryOpAddSub
- BinaryOpMulDivInfix
- BinaryOpArrow
- BinaryOpCompare
- BinaryOpLogicalAnd
- BinaryOpLogicalOr
- BinaryOpRange
- CAtom
- CharLiteral
- Comment
- FloatLiteral
- Identifier
- InterpolatedString
- IntLiteral
- Operator
- PathLiteral
- Placeholder
- StringLiteral
- Clause
- Commas
- Control
- Definition
- Escape
- FlowIf
- Lambda
- Macro
- Module
- Mutation
- Package
- Parens
- ParseError
- PrefixOpLogicalNot
- PrePostCall
- Project
- Snippet
- TypeSpec
- Where
- SGlitch
References
| Module | uLangCore |
| Header | /Engine/Source/Runtime/Solaris/uLangCore/Public/uLang/Common/Containers/SharedPointer.h |
| Include | #include "uLang/Common/Containers/SharedPointer.h" |
Syntax
class CSharedMix
Remarks
Mixin super/base class for objects that need to be reference counted.
As a mixin it avoids the (minor) speed cost of virtual function calls and the virtual table memory cost (1 pointer). It uses the coding technique known as "mix-in from above"/"Curiously Recurring Template Pattern".
Constructors
| Type | Name | Description | |
|---|---|---|---|
CSharedMix () |
|||
CSharedMix
(
const CSharedMix& Other |
Destructors
| Type | Name | Description | |
|---|---|---|---|
~CSharedMix () |
Functions
| Type | Name | Description | |
|---|---|---|---|
| uint32_t | GetRefCount () |
||
| TSPtrG< ObjectType, false, CHeapRawAllocator > | SharedThis
(
ObjectType* This |
||
| TSPtrG< const ObjectType, false, CHeapRawAllocator > | SharedThis
(
const ObjectType* This |
Operators
| Type | Name | Description | |
|---|---|---|---|
| CSharedMix & | operator=
(
const CSharedMix& Other |