...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::nfp::named_parameter_combine
// In header: <boost/test/utils/named_params.hpp> template<typename NP, typename Rest = nil> struct named_parameter_combine : public Rest { // types typedef NP::ref_type res_type; typedef named_parameter_combine< NP, Rest > self_type; // construct/copy/destruct named_parameter_combine(NP const &, Rest const &); // public member functions res_type operator[](keyword< typename NP::id, true >) const; res_type operator[](keyword< typename NP::id, false >) const; bool has(keyword< typename NP::id, false >) const; void erase(keyword< typename NP::id, false >) const; template<typename Visitor> void apply_to(Visitor &) const; named_parameter_combine< NP, named_parameter_combine< NP, Rest > > operator,(NP const &) const; };
named_parameter_combine
public member functionsres_type operator[](keyword< typename NP::id, true > kw) const;
res_type operator[](keyword< typename NP::id, false > kw) const;
bool has(keyword< typename NP::id, false > kw) const;
void erase(keyword< typename NP::id, false > kw) const;
template<typename Visitor> void apply_to(Visitor & V) const;
named_parameter_combine< NP, named_parameter_combine< NP, Rest > > operator,(NP const & np) const;