mrdocs::merge
Generic merge for any described type.
Synopsis
Declared in <mrdocs/Support/MergeReflectedType.hpp>
template<typename T>
requires describe::has_describe_members<T>::value
void
merge(
T& dst,
T&& src);
Description
Found via ADL for any type with MRDOCS_DESCRIBE_STRUCT. Non‐template overloads (custom merge functions) are preferred by overload resolution, so types with special merge semantics are unaffected.
Iterates base classes (via describe_bases) and own members (via describe_members).
Base classes are merged first by calling `merge(base_dst, base_src)`, which must be found via ADL.
For each own member, a default merge strategy is applied based on the member type (see mergeByType for the full list of strategies).
Template Parameters
| Name | Description |
|---|---|
T |
The type to merge (must have MRDOCS_DESCRIBE_STRUCT). |
Parameters
| Name | Description |
|---|---|
dst |
The destination object. |
src |
The source object. Members are moved from individually. |
Created with MrDocs