Using Template+Lambdas to Support Conditioned Default Value user-friendly: keep the original type of the parameter common: use a type different from the parameter type (named Flexible_Default) to apply the condition