Hacker News new | ask | show | jobs
by tpush 1660 days ago
Do you have an example of that where C++ struct returns are optimized but not C ones?
1 comments

enjoy: https://gcc.godbolt.org/z/7Pn8eqhdK

that's latest GCC, at -O3

Clang does generate good code https://gcc.godbolt.org/z/z781r7Phh

But yes, sadly I think it's still generally advisable to avoid returning large structs by value.

Note that this has nothing to do with RVO; as I understand it, RVO is about eliding copy constructors, not actual memory copies, and c has no copy constructors and so gets 'RVO' in all cases.