Skip to content

VecMergeR

VecMergeR

Description

Merge two vectors and store the result in the first vector, with R-value semantics.

Data is copied from v2 into v. If a copy_init method is provided in v, each element from v2 will be copied using that method. Otherwise, a raw memory copy is performed, which may be unsafe for complex or pointer-containing data.

Unlike VecMergeL, this does NOT zero out the source vector’s data after merging.

Success

v

Failure

Does not return on failure

Usage example (Cross-references)

Usage examples (Cross-references)
        dst->alignment   = src->alignment;
    
        VecMergeR(dst, src);
        ValidateStr(dst);
    
        // Merge vec2 into vec1
        VecMergeR(&vec1, &vec2);
    
        // Check vector lengths
        // Check vector lengths
        bool result = (vec1.length == 3);
        result      = result && (vec2.length == 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 = (vec1.length == 6);
        result      = result && (vec2.length == 3); // VecMergeR doesn't modify source vector
    
        // Expected result in vec1: [10, 20, 30, 40, 50, 60]
    /// FAILURE : NULL
    ///
    #define StrMergeR(str, str2) VecMergeR((str), (str2))
    
    ///
Last updated on