digitalmars.D - Cost of Returning Unused Struct?
- dsimcha (16/16) Jul 12 2010 I know that large structs are generally returned from functions by the c...
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);
Jul 12 2010