;class ArgumentPack&gt;
std::string f(ArgumentPack const&amp; args)
{
    std::string const&amp; s1 = args[_s1];
    std::string const&amp; s2 = args[_s2];
    typename parameter::binding&lt;
        ArgumentPack,tag::s3,std::string
    &gt;::type s3 = args[_s3|(s1+s2)]; // always constructs s1+s2
    return s3;
}

std::string x = f((_s1=&quot;hello,&quot;, _s2=&quot; world&quot;, _s3=&quot;hi world&quot;));
</pre>
<!-- @example.prepend('''
#include <boost/parameter.hpp>
#include <string>

namespace paramet