![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Class template slotBoost , The Boost C++ Libraries BoostBook Documentation Subset , Reference
|
Эффекты: | Инициирует В этом особом случае, когда параметр шаблонного типа |
шаблон<типnameтипnameДругоеSlotFunction>слотconstслот<Другая слотФункция>&другой_slot;
[ | Инициирует |
шаблон<имя типаимя типаимя типаслот&][ Синтаксический сахар для
связывания()
, когда конструктору передается более одного аргумента. Как будто:слот (буст::bind(f, a1, a2, ..., aN))
slot
invocationрезультат_типоператорНазывает слотСлотфункция
объект.Возвращение:
Результат возвращает объект слота
SlotFunction
.Броски:
Любые исключения, выброшенные объектом слота
SlotFunction
.boost::signals2::expired_slot, если какой-либо объект в списке отслеживаемых объектов истек.Примечания:
Если вы уже использовалиблокировкудля обеспечения достоверности отслеживаемых объектов, немного эффективнее использовать методslot_function() и напрямую вызывать слот
SlotFunction
slot
trackingслоттрек<void>>tracked_object]слотслоттрекконстслоттрекслабый_ptrслабый_ptr[5 Если какой-либо из отслеживаемых объектов истекает, то последующие попытки вызвать оператора слота
или
замок ()
методы будут бросатьсигналы2::expired_slotисключение.При отслеживании сигнала для отслеживания используется общий_ptr, внутренний для класса сигнала. Сигнал не должен принадлежать внешнему
shared_ptr
.В случае прохождения другого слота в качестве аргумента в
трек()
, только объекты, находящиеся в настоящее время в списке отслеживаемых объектов другого слота, добавляются в список отслеживаемых объектовэтого
. Другой объект слота сам по себе не отслеживается.Возвращение:
*это
шаблон<имя типаForeignWeakPtr>слот&track_foreignconst&tracked_object&typenameweak_ptr_traits<ForeignWeakPtr>ForeignWeakPtr::shared_type*]шаблон<608]TypenameForeignSharedPtr>слот&track_foreignconst&tracked_object&typenameshared_ptr_traits<ForeignSharedPtr>weak_type
Эффекты: [717 Метод
track_foreign
() ведет себя аналогично вызову методаtrack() с помощью аргумента boost::shared_ptr или boost::weak_ptr. Однакоtrack_foreign
более гибок в том, что он будет приниматьshared_ptr
илиweak_ptr
классы извне импульса (наиболее значительноstd::shared_ptr
илиstd::weak_ptr
).Для использования с этой функцией определенного
класса share_ptr
для него должна существовать специализация boost::signals2::shared_ptr_traits. Также должна быть предусмотрена специализация бустера::сигналы2::weak_ptr_traits для его соответствующегокласса weak_ptr
. Специализацияshared_ptr_traits
должна включать в себяweak_type
член typedef, который определяет соответствующийweak_ptr
тип классаshared_ptr
. Аналогично, специализацияweak_ptr_traits
должна включать в себяshared_type
член typedef, который определяет соответствующийshared_ptr
тип классаweak_ptr
. Специализации дляstd::shared_ptr
иstd::weak_ptr
уже предоставляются библиотекой сигналов2. Для других классовshared_ptr
необходимо предоставить специализацию.Второй аргумент «SFINAE» может быть проигнорирован, он используется для разрешения перегрузки между
shared_ptr
илиweak_ptr
объектами, переданными в качестве первого аргумента.Возвращение:
*это
slot
slot function accessслот_функция_тип&слот_функция;констслот_функция_тип&слот_функцияконст;[896]
[8 Ссылка на основной объект слот-функции. |
Статья Class template slot раздела The Boost C++ Libraries BoostBook Documentation Subset Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |