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 for the latest Boost documentation.
PrevUpHomeNext

Class template counter

boost::log::attributes::counter — A class of an attribute that counts an integral value.

Synopsis

// In header: <boost/log/attributes/counter.hpp>

template<typename T> 
class counter : public attribute {
public:
  // types
  typedef T value_type;  // A counter value type. 

  // member classes/structs/unions

  // Factory implementation.

  class impl : public attribute::impl {
  public:
    // construct/copy/destruct
    impl(value_type, value_type) noexcept;

    // public member functions
    virtual attribute_value get_value();
  };

  // construct/copy/destruct
  explicit counter(value_type = (value_type) 0, value_type = (value_type) 1);
  explicit counter(cast_source const &);

  // private member functions
   BOOST_STATIC_ASSERT_MSG(is_integral< T >::value, 
                           "Boost.Log: Only integral types are supported by the counter attribute");
};

Description

This attribute acts as a counter - it returns a monotonously changing value each time requested. The attribute value type can be specified as a template parameter. The type must be an integral type.

counter public construct/copy/destruct

  1. explicit counter(value_type initial = (value_type) 0, 
                     value_type step = (value_type) 1);

    Constructor

    Parameters:

    initial

    Initial value of the counter

    step

    Changing step of the counter. Each value acquired from the attribute will be greater than the previous one by this amount.

  2. explicit counter(cast_source const & source);

    Constructor for casting support

counter private member functions

  1.  BOOST_STATIC_ASSERT_MSG(is_integral< T >::value, 
                             "Boost.Log: Only integral types are supported by the counter attribute");

PrevUpHomeNext