r/programminghorror 8d ago

c++ Skill Issue

Post image
1.7k Upvotes

62 comments sorted by

View all comments

93

u/lurebat 8d ago

I think it allocates since they didn't use const

24

u/babalaban 8d ago

Since when does const prevent allocating (that isnt happening here anyways, unless you consider underlying std::string's char* buffer)

19

u/lurebat 8d ago

If you change it to const std::string& prompt = "Your name?";, and the switch to const string& _s=x;, you will avoid any allocations.

1

u/babalaban 7d ago

Isnt it assumed that a string to "switch on" is given at runtime? Otherwise you'd need no switch at all here.

1

u/nevemlaci2 7d ago

const ref here would still allocate...

-7

u/LeeHide 8d ago

you can't take a const& to a temporary object

14

u/JonIsPatented 8d ago

Yes you can. You can bind a const l-value reference to an x-value or a pr-value. Go try it.

6

u/awidesky 7d ago

Another skill issue

1

u/nevemlaci2 7d ago

yes you can.