Skip to content
Snippets Groups Projects
Commit 3aed3e72 authored by Adam Wardyński's avatar Adam Wardyński
Browse files

Making the default for "value-if-false" parameter to be a static, initialized...

Making the default for "value-if-false" parameter to be a static, initialized on demand, member of Conditional.
parent ac227055
No related merge requests found
......@@ -21,11 +21,11 @@ class Conditional : public Function<T> {
public:
typedef boost::shared_ptr<Function<T> > ArgFunctionPtr;
typedef boost::shared_ptr<Function<Bool> > BoolFunctionPtr;
Conditional(
const BoolFunctionPtr& cond_expr,
const ArgFunctionPtr& iftrue_expr,
const ArgFunctionPtr& iffalse_expr = ArgFunctionPtr(new Constant<T>(T())))
const ArgFunctionPtr& iffalse_expr = Default())
: cond_expr_(cond_expr), iftrue_expr_(iftrue_expr), iffalse_expr_(iffalse_expr)
{
BOOST_ASSERT(cond_expr_);
......@@ -74,6 +74,11 @@ protected:
const ArgFunctionPtr iftrue_expr_;
const ArgFunctionPtr iffalse_expr_;
static const ArgFunctionPtr& Default() {
static ArgFunctionPtr x(new Constant<T>(T()));
return x;
}
typedef FunctionBase::BaseRetValPtr BaseRetValPtr;
/**
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment