C++ inlining of references (original) (raw)
Thomas Schatzl thomas.schatzl at oracle.com
Tue Mar 21 09:36:24 UTC 2017
- Previous message: C++ inlining of references
- Next message: C++ inlining of references
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Ioi,
On Tue, 2017-03-21 at 17:25 +0800, Ioi Lam wrote:
How good are C++ compilers with optimizing references in inline functions? I have 2 functions that have a large common header:
foo() { int x = xxx(); int y = yyy(); dofoo(x, y); } bar() { int x = xxx(); int y = yyy(); dobar(x, y); } So I want to refactor it to inline void common(int&x, int &y) { x = xxx(); y = yyy(); } foo() { int x, y; common(x, y); dofoo(x, y); } bar() { int x, y; common(x, y); dobar(x, y); } Because the common header modifies 2 variables, there's no easy way to pass them back easily. So I pass them as references to the inline function. Can I expect modern C++ compilers to always generate equally optimal code for the before/after cases?
try it yourselves: https://godbolt.org/ :)
Thanks, Thomas
- Previous message: C++ inlining of references
- Next message: C++ inlining of references
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]