Passing optional parameter by reference in c++
Why can't you use function overloading? Surely it's the easiest solution to your problem?
void foo(double &bar, double &foobar)
{
bar = 100;
foobar = 150;
}
void foo(double &bar)
{
double foobar = 0.0;
foo(bar, foobar);
}
Don't use references for optional parameters. There is no concept of reference NULL: a reference is always an alias to a particular object.
Perhaps look at boost::optional
or std::experimental::optional
. boost::optional
is even specialized for reference types!
void foo(double &bar, optional<double &> foobar = optional<double &>())