...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::log::expressions::attribute_terminal
// In header: <boost/log/expressions/attr.hpp> template<typename T, typename FallbackPolicyT, typename TagT> class attribute_terminal { public: // types typedef TagT tag_type; // Attribute tag type. typedef value_extractor_type::value_type value_type; // Attribute value type. typedef value_extractor_type::fallback_policy fallback_policy; // Fallback policy type. // member classes/structs/unions // Function result type. template<typename > struct result { }; template<typename ThisT, typename ContextT> struct result<ThisT(ContextT)> { // types typedef remove_cv< typenameremove_reference< typenamephoenix::result_of::env< ContextT >::type >::type >::type env_type; typedef env_type::args_type args_type; typedef unspecified cv_value_extractor_type; typedef boost::result_of< cv_value_extractor_type(attribute_nameconst &, typenamefusion::result_of::at_c< args_type, 0 >::type)>::type type; }; // construct/copy/destruct explicit attribute_terminal(attribute_name const &); template<typename U> attribute_terminal(attribute_name const &, U const &); attribute_terminal() = delete; // public member functions attribute_name get_name() const; fallback_policy const & get_fallback_policy() const; template<typename ContextT> result< this_type(ContextTconst &)>::type operator()(ContextT const &); template<typename ContextT> result< constthis_type(ContextTconst &)>::type operator()(ContextT const &) const; };
An attribute value extraction terminal
attribute_terminal
public member functionsattribute_name get_name() const;
Returns: |
Attribute value name |
fallback_policy const & get_fallback_policy() const;
Returns: |
Fallback policy |
template<typename ContextT> result< this_type(ContextTconst &)>::type operator()(ContextT const & ctx);
The operator extracts attribute value
template<typename ContextT> result< constthis_type(ContextTconst &)>::type operator()(ContextT const & ctx) const;
The operator extracts attribute value