Sometimes you calculate an expensive parameter and then the function don't need it at all! Examples would be the creation of a log message but the logger is disabled. With lazy evaluation of function arguments the parameter will only be evaluated when it is actually needed. But can we do it in C++?