VecMergeR

Table of Contents

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.

Note

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)

    /// FAILURE : NULL
    ///
    #define StrMergeR(str, str2) VecMergeR((str), (str2))
    
    ///
    dst->alignment   = src->alignment;
    
    VecMergeR(dst, src);
    ValidateStr(dst);
    
    // 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]
    
    // 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

Share :