Struct template extract_or_default
boost::log::result_of::extract_or_default — A metafunction that allows to acquire the result of the value extraction.
Synopsis
template<typename T, typename DefaultT, typename TagT>
struct extract_or_default {
typedef mpl::eval_if< mpl::is_sequence< T >, mpl::eval_if< mpl::contains< T, DefaultT >, mpl::identity< T >, mpl::push_back< T, DefaultT > >, mpl::if_< is_same< T, DefaultT >, T, mpl::vector2< T, DefaultT > > >::type extracted_type;
typedef mpl::if_< mpl::is_sequence< extracted_type >, value_ref< extracted_type, TagT >, extracted_type const & >::type type;
};
Description
Метафункция приводит к типу, который находится в формеT const &, еслиTне является последовательностью типа MPL иDefaultTто же, чтоT, илиvalue_ref< TypesT, TagT >иначе, сTypesTявляется последовательностью типа, содержащей типы из последовательностейTиDefaultTЕсли он не присутствует вTуже.