...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 T> struct is_named_params; template<typename T, typename unique_id, typename ReferenceType> struct is_named_params<named_parameter< T, unique_id, ReferenceType >>; template<typename NP, typename Rest> struct is_named_params<nfp_detail::named_parameter_combine< NP, Rest >>; template<typename unique_id, bool required = false> struct keyword; template<typename T, typename unique_id, typename ReferenceType = T&> struct named_parameter; template<typename Params, typename KeywordType, typename DefaultType = void> struct param_type; template<typename T, typename unique_id, typename ReferenceType, bool required, typename DefaultType> struct param_type<named_parameter< T, unique_id, ReferenceType >, keyword< unique_id, required >, DefaultType>; template<typename T, typename unique_id, typename ReferenceType, typename Rest, bool required, typename DefaultType> struct param_type<nfp_detail::named_parameter_combine< named_parameter< T, unique_id, ReferenceType >, Rest >, keyword< unique_id, required >, DefaultType>; template<typename NP, typename Rest, typename Keyword, typename DefaultType> struct param_type<nfp_detail::named_parameter_combine< NP, Rest >, Keyword, DefaultType>; template<typename T, typename unique_id, bool required = false> struct typed_keyword; template<typename unique_id> struct typed_keyword<bool, unique_id, false>; template<typename T> void optionally_assign(T &, unspecified); template<typename T, typename Source> void optionally_assign(T & target, Source const & src); template<typename T, typename Params, typename Keyword> void optionally_assign(T & target, Params const & p, Keyword k); } }