Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class template attribute_terminal

boost::log::expressions::attribute_terminal

Synopsis

// 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;
};

Description

An attribute value extraction terminal

attribute_terminal public construct/copy/destruct

  1. explicit attribute_terminal(attribute_name const & name);

    Initializing constructor

  2. template<typename U> 
      attribute_terminal(attribute_name const & name, U const & arg);

    Initializing constructor

  3. attribute_terminal() = delete;

attribute_terminal public member functions

  1. attribute_name get_name() const;

    Returns:

    Attribute value name

  2. fallback_policy const & get_fallback_policy() const;

    Returns:

    Fallback policy

  3. template<typename ContextT> 
      result< this_type(ContextTconst &)>::type operator()(ContextT const & ctx);

    The operator extracts attribute value

  4. template<typename ContextT> 
      result< constthis_type(ContextTconst &)>::type 
      operator()(ContextT const & ctx) const;

    The operator extracts attribute value


PrevUpHomeNext