mrdocs::merge

merge overloads

Synopses

Declared in <mrdocs/Metadata/Expression.hpp>

Append blocks from other into I, preserving order.

void
merge(
    DocComment& I,
    DocComment&& other);

Merge metadata from another expression.

void
merge(
    ExprInfo& I,
    ExprInfo&& Other);

Merge two ExtractionMode values.

void
merge(
    ExtractionMode& dst,
    ExtractionMode&& src) noexcept;

Merge the location sets, preferring existing def/primary.

void
merge(
    SourceInfo& I,
    SourceInfo const& Other);

Merge, transferring ownership from the right‐hand side.

void
merge(
    SourceInfo& I,
    SourceInfo&& Other);

Merge partial template info, filling missing pieces.

void
merge(
    TemplateInfo& I,
    TemplateInfo&& Other);

Merge friend declarations, deduplicating by symbol ID.

void
merge(
    std::vector<FriendInfo>& dst,
    std::vector<FriendInfo>&& src);

Merge parameters element‐wise, appending extras from src.

void
merge(
    std::vector<Param>& dst,
    std::vector<Param>&& src);

Merges two Symbol objects according to the behavior of the derived class.

template<polymorphic_storage_for<Symbol> SymbolTy>
void
merge(
    SymbolTy& I,
    SymbolTy&& Other);

Generic merge for any described type.

template<typename T>
requires describe::has_describe_members<T>::value
void
merge(
    T& dst,
    T&& src);

Merge metadata from another constant expression.

template<class T>
static
void
merge(
    ConstantExprInfo<T>& I,
    ConstantExprInfo<T>&& Other);

Template Parameters

Name Description

T

The type to merge (must have MRDOCS_DESCRIBE_STRUCT).

Parameters

Name Description

dst

The destination.

src

The source (moved from).

I

The Symbol object to merge into.

Other

The Symbol object to merge from.

Created with MrDocs