Skip to content

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
    
        // Merge vec2 into vec1
        VecMergeR(&vec1, &vec2);
    
        // Check lengths
        // 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]
    #define VecMustMergeR(v, v2)                                                                                           \
        do {                                                                                                               \
            if (!VecMergeR((v), (v2))) {                                                                                   \
                LOG_FATAL("VecMustMergeR failed");                                                                         \
            }                                                                                                              \
    /// TAGS: Str, Merge, RValue
    ///
    #define StrMergeR(str, str2) VecMergeR((str), (str2))
    
    ///
Last updated on