## Struct impl

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

## Synopsis

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

    // A base class for an attribute value factory.

    struct impl : public boost::intrusive_ref_counter< impl > {

      // public member functions
      virtual ~impl();
      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;
    };

## Description

All attributes must derive their implementation from this class.

### `impl` public member functions

1.     virtual ~impl();

   Virtual destructor.

2.     virtual attribute_value get_value() = 0;

   Returns: | 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;