I understand that c++ only allows rvalues or temp objects to bind to const-references. (Or something close to that...)
For example, assuming I have the functions doStuff(SomeValue & input)
and  SomeValue getNiceValue() defined:
/* These do not work */
app->doStuff(SomeValue("value1"));
app->doStuff(getNiceValue());
/* These all work, but seem awkward enough that they must be wrong. :) */
app->doStuff(*(new SomeValue("value2")));
SomeValue tmp = SomeValue("value3");
app->doStuff(tmp);
SomeValue tmp2 = getNiceValue();
app->doStuff(tmp2);
So, three questions:
- Since I am not free to change the signatures of - doStuff()or- getNiceValue(), does this mean I must always use some sort of "name" (even if superfluous) for anything I want to pass to- doStuff?
- Hypothetically, if I could change the function signatures, is there a common pattern for this sort of thing? 
- Does the new C++11 standard change the things at all? Is there a better way with C++11? 
Thank you
 
     
     
     
     
     
    