...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
namespace boost { namespace nfp { template<typename unique_id, bool required> struct keyword; template<typename T, typename unique_id, bool required = false> struct typed_keyword; template<typename T, typename unique_id, typename RefType = T&> struct named_parameter; template<typename NP1, typename NP2> struct named_parameter_combine; template<typename T> struct is_named_param_pack; template<typename T, typename unique_id, typename RefType> struct is_named_param_pack<named_parameter< T, unique_id, RefType >>; template<typename NP, typename Rest> struct is_named_param_pack<named_parameter_combine< NP, Rest >>; template<typename NP, typename Keyword, typename DefaultType = void> struct param_type; template<typename NP, typename Rest, typename Keyword, typename DefaultType> struct param_type<named_parameter_combine< NP, Rest >, Keyword, DefaultType>; template<typename NP, typename Keyword> struct has_param; template<typename NP, typename Rest, typename Keyword> struct has_param<named_parameter_combine< NP, Rest >, Keyword>; struct nil; template<typename unique_id, bool required> struct typed_keyword<bool, unique_id, required>; typedef named_parameter< char, struct no_params_type_t, char > no_params_type; template<typename T, typename Params, typename Keyword> enable_if_c<!has_param< Params, Keyword >::value, void >::type opt_assign(T &, Params const &, Keyword); template<typename T, typename Params, typename Keyword> enable_if_c< has_param< Params, Keyword >::value, void >::type opt_assign(T & target, Params const & p, Keyword k); template<typename T, typename Params, typename Keyword> T opt_get(Params const & p, Keyword k, T default_val); template<typename Params, typename NP> enable_if_c<!has_param< Params, keyword< typename NP::id > >::value, named_parameter_combine< NP, Params > >::type opt_append(Params const & params, NP const & np); template<typename Params, typename NP> enable_if_c< has_param< Params, keyword< typename NP::id > >::value, Params >::type opt_append(Params const & params, NP const &); } }