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


Struct impl

boost::log::attribute::impl — A base class for an attribute value factory.


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

// A base class for an attribute value factory.

struct impl : public boost::intrusive_ref_counter< impl > {
  // construct/copy/destruct

  // public member functions
  virtual attribute_value get_value() = 0;

  // public static functions
  static void * operator new(std::size_t);
  static void operator delete(void *, std::size_t) noexcept;


All attributes must derive their implementation from this class.

impl public construct/copy/destruct

  1. ~impl();
    Virtual destructor.

impl public member functions

  1. virtual attribute_value get_value() = 0;


    The actual attribute value. It shall not return empty values (exceptions shall be used to indicate errors).

impl public static functions

  1. static void * operator new(std::size_t size);
  2. static void operator delete(void * p, std::size_t size) noexcept;