![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Boost.Flyweight Documentation - Tracking policies referenceBoost , , Boost.Flyweight Documentation - Reference
|
expression | return type | assertion/note pre/post-condition |
---|---|---|
<TrackingHelper::entry(h); > |
<const Entry& > |
Возвращение<f.entry(h) >. |
<TrackingHelper::erase(h,check); > |
<void > |
Если<check(h) >, то<f.erase(h) >. |
Выполнение<TrackingHelper::erase
>(включая вызов<check(h)
>) выполняется синхронно, чтобы предотвратить одновременное получение доступа к объектам установки или удаления завода.
Политикаотслеживанияопределяет стратегию, за которой следует инстанциация<flyweight
>, когда все объекты, связанные с заданным значением, уничтожаются. Политика отслеживания предоставляет информацию определенного типа, необходимую для определения<flyweight
>внутреннегозавода.
Тип<Tracking
>является политикой отслеживания, если:
Tracking::handle_type
>параметризирован помощником, который обеспечивает доступ к некоторым функциям завода, связанным с политикой отслеживания. Типы входа и ручки на этом заводе - это типы<Entry
>и<Handle
>, определенные выше, соответственно.Одно из следующих условий выполнено:is_tracking<Tracking>::type
являетсяboost::mpl::true_
,Tracking
имеет формуtracking<Tracking'>
.Tracking::entry_type
(илиTracking'::entry_type
, если применяется (b)) являетсяMPL Lambda
Expression
, которое разрешает, когда оно используется с различными типамиValue
,Key
таким образом, чтоValue
являетсяAssignable
и неявно конвертируемым вconst Key&
, вAssignable
Entry
неявно конвертируемым вconst Value&
иconst Key&
.Tracking::handle_type
(илиTracking'::handle_type
, если (b) применяется) являетсяMPL Lambda
Expression
; это выражение, когда оно вызывается типамиInternalHandle
,TrackingHelper
, причемInternalHandle
являетсяAssignable
и обеспечивает гарантию нотроу для копирования и присвоения, разрешает типAssignable
Handle
, который также обеспечивает гарантию нотроу для копирования и присвоения и является конструируемым из и неявно конвертируемым вInternalHandle
.TrackingHelper
является неполным типом во время вызоваTracking::handle_type
.Tracking::handle_type
is parameterized by a helper that provides
access to some of the functionality of the factory associated to the
tracking policy. This factory's associated entry and handle types are the types
Entry
and Handle
defined above, respectively.
[ORIG_END] -->
"boost/flyweight/tracking_tag.hpp"
synopsisnamespace boost{ namespace flyweights{ struct tracking_marker; template<typename T> struct is_tracking template<typename T> struct tracking; } // namespace boost::flyweights } // namespace boost
is_tracking
Если пользователь не специализируется,<is_tracking<T>::type
><boost::mpl::true_
>, если<T
>получен из<tracking_marker
>, и это<boost::mpl::false_
>В противном случае.
tracking
<tracking<T>
>является синтаксической конструкцией, предназначенной для указания на то, что<T
>является политикой отслеживания, не прибегая к механизмам, предоставляемым шаблоном класса<is_tracking
>.
"boost/flyweight/refcounted_fwd.hpp"
synopsisnamespace boost{ namespace flyweights{ struct refcounted; } // namespace boost::flyweights } // namespace boost
<refcounted_fwd.hpp
>форвард объявляет класс<refcounted
>.
"boost/flyweight/refcounted.hpp"
synopsisrefcounted
<Tracking Policy
>, обеспечивая<flyweight
>инстанциации со ссылкой на семантику подсчета: когда все объекты, связанные с заданным значением, уничтожаются, соответствующая запись стирается с<flyweight
>внутреннегозавода.
"boost/flyweight/no_tracking_fwd.hpp"
synopsisnamespace boost{ namespace flyweights{ struct no_tracking; } // namespace boost::flyweights } // namespace boost
<no_tracking_fwd.hpp
>форвард объявляет класс<no_tracking
>.
"boost/flyweight/no_tracking.hpp"
synopsisno_tracking
Нуль<Tracking Policy
>: элементы, вставленные во внутреннююфабрику<flyweight
>, не стираются до окончания программы.
Пересмотрено 18 августа 2008 года
© Copyright 2006-2008 Joaquín M López Muñoz. Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файлLICENSE_1_0.txtили копию на) http://www.boost.org/LICENSE_1_0.txt
Статья Boost.Flyweight Documentation - Tracking policies reference раздела Boost.Flyweight Documentation - Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Boost.Flyweight Documentation - Reference ::
реклама |