MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Inheritance.h File Reference
#include "CoreMinimal.h"
#include "Mcro/Templates.h"
#include "Mcro/FunctionTraits.h"

Go to the source code of this file.

Data Structures

class  Mcro::Inheritance::TInherit< BaseTypes >
 Inherit via this template to allow other API to reflect upon the base types of deriving class. Base types are inherited as public. If you want privately inherited base classes, just inherit them as normal. More...
 

Namespaces

namespace  Mcro
 
namespace  Mcro::Inheritance
 
namespace  Mcro::Inheritance::Detail
 

Concepts

concept  Mcro::Inheritance::CHasBases
 Some MCRO utilities allow for intrusive method of declaring inheritance which can be later used to reflect upon base classes of a derived type.
 
concept  Mcro::Inheritance::CHasExplicitBase
 

Functions

template<CIsTypeList Bases, typename Function >
constexpr void Mcro::Inheritance::Detail::ForEachExplicitBase (Function &&function)
 
template<typename T , typename Function >
constexpr void Mcro::Inheritance::Detail::ForEachExplicitBase_Body (Function &&function)
 
template<CIsTypeList Bases, typename Function , size_t... Indices>
constexpr void Mcro::Inheritance::Detail::ForEachExplicitBase_Impl (Function &&function, std::index_sequence< Indices... > &&)
 
template<typename T , typename Function >
requires (CHasBases<T> || CIsTypeList<T>)
constexpr void Mcro::Inheritance::ForEachExplicitBase (Function &&function)
 Operate on each of the explicitly listed base classes of a given type with a lambda function template. If any given type also happens to match CHasBases, iterate on their base types too recursively. Works directly with CHasBases or type lists (CIsTypeList).
 
template<typename T , typename Bases >
requires (CHasBases<Bases> || CIsTypeList<Bases>)
constexpr bool Mcro::Inheritance::HasExplicitBase ()
 

Detailed Description

Author
David Mórász
Date
2025

Definition in file Inheritance.h.