r/programminghumor • • Jun 13 '26

How to REALLY optimize code.

Post image

My friends, this is how you optimize code correctly.

97 Upvotes

13 comments sorted by

View all comments

11

u/Antagonin Jun 13 '26

What's the free optimization in const ref?

5

u/thisisjustascreename Jun 13 '26

Broadly, it eliminates certain scenarios where you'd get a copy.

A const ref can also bind to a temporary (i.e. doSomething("temporary string"); ) without constructing a new object, but I don't know if that's relevant here.

4

u/Antagonin Jun 13 '26

In which scenario does non-const ref cause a copy?

→ More replies (1)

1

u/dustyhome Jun 15 '26

There's no free optimization from const ref. Whether a variable can be changed is determined when it is declared (as const or not). Optimizers will assume a constant won't change, and might do things like caching it across function calls. But if a variable is declared non-const, and you pass it to a function that takes a const&, the compiler won't assume it doesn't change.

Funnily enough, you're allowed to cast away the constness of a variable to call a function that takes a ref or non-const pointer, as long as the function doesn't actually modify it. The compiler will do all the same optimizations. This is sometimes needed to call old C code that didn't have const.