VecMergeR
Description
Append a copy of all elements of v2 to the end of v. R-value form: the source vector is never emptied; its contents are read-only.
Parameters
| Name | Direction | Description |
|---|---|---|
v |
in,out | Destination vector. |
v2 |
in | Source vector. |
Success
Returns true. v->length grows by v2->length; copies of every v2 element occupy the new tail of v. v2 is untouched.
Failure
Returns false on allocation failure. v is unchanged.
Usage example (Cross-references)
Usage examples (Cross-references)
// Merge vec2 into vec1
VecMergeR(&vec1, &vec2);
// Check vector lengths
// Check vector lengths
bool result = (VecLen(&vec1) == 3);
result = result && (VecLen(&vec2) == 2); // VecMergeR doesn't modify source vector
// Check items in vec1: item1, item2, item3
- In
Vec.Insert.c:289:
// Merge vec2 into vec1
VecMergeR(&vec1, &vec2);
// Check lengths
- In
Vec.Insert.c:293:
// Check lengths
bool result = (VecLen(&vec1) == 6);
result = result && (VecLen(&vec2) == 3); // VecMergeR doesn't modify source vector
// Expected result in vec1: [10, 20, 30, 40, 50, 60]
- In
Insert.h:934:
#define VecMustMergeR(v, v2) \
do { \
if (!VecMergeR((v), (v2))) { \
LOG_FATAL("VecMustMergeR failed"); \
} \- In
Insert.h:375:
/// TAGS: Str, Merge, RValue
///
#define StrMergeR(str, str2) VecMergeR((str), (str2))
///
Last updated on