Cost of Returning Unused Struct?

dsimcha dsimcha at yahoo.com
Mon Jul 12 13:16:17 PDT 2010


I know that large structs are generally returned from functions by the caller
passing in a hidden pointer.  Assuming the function is not inlined, is this
cost mitigated in any way if the return value is not used?  In other words, if
the return value is not used, then is returning a large struct from a function
still costly?

The use case for this is having the put() methods of structs that allow put()
to be called with the type of the struct return this.  This would allow
reductions like reduce!"a.put(b)" to be performed.  For example:

struct LargeStruct {
    LargeStruct put(LargeStruct rhs) {
        // Do stuff.
        return this;
    }
}

LargeStruct[] arr = getLargeStructs();
auto combined = reduce!"a.put(b)"(arr);


More information about the Digitalmars-d mailing list