Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Class attribute

Boost , Chapter 1. Boost.Log v2 , Attributes

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 attribute

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

Synopsis

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

class attribute {
public:
  // member classes/structs/unions
  // A base class for an attribute value factory.
  struct impl : public boost::intrusive_ref_counter< impl > {
    // construct/copy/destruct
    ~impl();
    // 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;
  };
  // construct/copy/destruct
  attribute() = default;
  attribute(attribute const &) noexcept;
  attribute(attribute &&) noexcept;
  explicit attribute(intrusive_ptr< impl >) noexcept;
  attribute & operator=(attribute const &) noexcept;
  attribute & operator=(attribute &&) noexcept;
  // public member functions
  explicit operator bool() const noexcept;
  bool operator!() const noexcept;
  attribute_value get_value() const;
  void swap(attribute &) noexcept;
  // protected member functions
  impl * get_impl() const noexcept;
  void set_impl(intrusive_ptr< impl >) noexcept;
  // friend functions
  template<typename T> friend T attribute_cast(attribute const &);
};

Description

Каждый атрибут представлен фабрикой, которая в основном является генератором значений атрибутов. Единственной целью атрибута является возврат фактической стоимости по запросу. Простейший атрибут всегда может вернуть то же значение, которое он хранит внутри, но более сложные могут выполнить значительный объем работы, чтобы вернуть значение, и возвращенные значения могут отличаться каждый раз, когда запрашивается.

Несколько слов о безопасности. Атрибут должен быть подготовлен к запросу значения из нескольких потоков одновременно.

attribute public construct/copy/destruct

  1. атрибут()=;

    Конструктор по умолчанию. Создает пустую фабрику стоимости атрибутов, которая не может использоваться до тех пор, пока не будет названаset_impl.

  2. атрибутатрибутconst&, что[за исключением;

    конструктор копий

  3. атрибутатрибут&&

    Переместить конструктор

  4. явныйатрибутинтрузивный_ptr<impl>p]не исключение;

    p

    Не должно бытьNULL.

  5. атрибут&оператор=атрибутconst&, чтоне исключение;

    Копии

  6. атрибут&оператор=атрибут&&, чтобез исключения;

    Переезд

attribute public member functions

  1. эксплицитныйоператорбулконстне исключение;

    Проверяет, что завод не находится в пустом состоянии

  2. boolоператор![]constбез исключения;

    Проверяет, что завод находится в пустом состоянии

    .
  3. атрибут_значениеget_value]const;

    Возврат:

    [2 Фактическая ценность атрибута. Он не должен возвращать пустые значения (исключения должны использоваться для обозначения ошибок).

  4. voidswapатрибут&, чтоне исключение;

    Метод своп двух заводов (т.е. их реализации).

attribute protected member functions

  1. impl*get_implconstno except;

    Возвращение:

    Указатель на реализацию

  • voidset_implintrusive_ptr<impl>p]без исключения;

    Устанавливает указатель на фабричную реализацию.

    Параметры:

    Указание на осуществление. Не должно бытьNULL.

  • attribute friend functions

    1. шаблон<имя типаT>другTатрибут_castатрибутconst&;

      Функция отбрасывает один атрибут фабрики на другой

      .

    PrevUpHomeNext

    Статья Class attribute раздела Chapter 1. Boost.Log v2 Attributes может быть полезна для разработчиков на c++ и boost.




    Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



    :: Главная :: Attributes ::


    реклама


    ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
    Top.Mail.Ru

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-04 22:52:34/0.0067019462585449/0