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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
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 void                                  _is_boost_log_terminal;  // Internal typedef for type categorization. 
  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< typename remove_reference< typename phoenix::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_name const &, typename fusion::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(ContextT const &) >::type operator()(ContextT const &);
  template<typename ContextT> 
    result< const this_type(ContextT const &) >::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(ContextT const &) >::type operator()(ContextT const & ctx);

    The operator extracts attribute value

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

    The operator extracts attribute value


PrevUpHomeNext