std::function
C++ std::function
To remember the usage std::function (Parameters)
Example:
bool CCEmailRulesCheckHelper::actionIfNotCompliant(Result const& result, function<void(Result const&)> fn)
{
switch (result.getCase())
{
case Case::NO_EMAIL:
case Case::NO_MAIN_EMAIL:
case Case::NO_MAIN_EMAIL_AUTH:
case Case::NO_REO_EMAIL:
fn(result);
return result.isGK() ? true : false;
}
return true;
}
Call:
CCEmailRulesCheckHelper emailRules("BaseProductNew - " + GetMatchCode());
auto const result = emailRules.evaluate(pContract);
bool const canContinue = CCEmailRulesCheckHelper::actionIfNotCompliant(result,
[&emailRules](auto result) {
TMString text = emailRules.getContext() + " : " + result.getMessage();
TMPROTMSG(CCTreeBaseProductInterface, text);
int icon = result.isGK() ? MB_ICONINFORMATION : MB_ICONERROR;
GetWinApp()->GetAppView()->MessageBox(result.getMessage().c_str(), "ccmain", icon | MB_OK);
return;
}
);
if (!canContinue)
return;