Something along the lines of

doer = new doer;
doer->setP1(value for defaulted P1);
doer->do(must-have parameters);

For simple cases,

new Doer() -> do(...);

or even

Doer::do(...)