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

Boost.Flyweight Documentation - Tracking policies reference

Boost , , Boost.Flyweight Documentation - Reference

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

Boost.Flyweight Tracking policies reference



Contents

Preliminary concepts

помощник по политике отслеживанияобеспечивает доступ к некоторым функциямфабрикидля использования при реализации связанного<Tracking Policy>. В следующей таблице<TrackingHelper>является помощником политики отслеживания, связанным сзаводскимтипом<Factory>элементов типа<Entry>,<h>является значением<Factory::handle_type>, связанным с<Factory><f>и<check>является значением.<Predicate>Тип<Checker>с аргументом типа<Factory::handle_type>.

Tracking Policy Helper requirements.
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)>) выполняется синхронно, чтобы предотвратить одновременное получение доступа к объектам установки или удаления завода.

Tracking policies

Политикаотслеживанияопределяет стратегию, за которой следует инстанциация<flyweight>, когда все объекты, связанные с заданным значением, уничтожаются. Политика отслеживания предоставляет информацию определенного типа, необходимую для определения<flyweight>внутреннегозавода.

Тип<Tracking>является политикой отслеживания, если:

    1. < [37] >< [38] >< [38] >< [38] >
    2. < [47] >< [48] >.
  • < [53] >[< [54] >[b]]< [55] >[,]< [56] >< [56] >[о]< [56] >< [58] >[] [] [< [61] >]< [58] >< [63] >[< [63] >] [< [63] >] [< [64] >] [< [64] >] [< [61] >].
  • < [86] >[< [87] >[b]]< [88] >;< [90] >,< [89] >< [92] >и [приблизительно]< [92] >< [94] >, [приблизительно][приблизительно]< [94] >, [приблизительно] [приблизительно]], [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно] [приблизительно
<Tracking::handle_type>параметризирован помощником, который обеспечивает доступ к некоторым функциям завода, связанным с политикой отслеживания. Типы входа и ручки на этом заводе - это типы<Entry>и<Handle>, определенные выше, соответственно.Одно из следующих условий выполнено:
  1. is_tracking<Tracking>::typeявляетсяboost::mpl::true_,
  2. Trackingимеет формуtracking<Tracking'>.
  • ВыражениеTracking::entry_type(илиTracking'::entry_type, если применяется (b)) являетсяMPL Lambda Expression, которое разрешает, когда оно используется с различными типамиValue,Keyтаким образом, чтоValueявляетсяAssignableи неявно конвертируемым вconst Key&, вAssignableEntryнеявно конвертируемым вconst Value&иconst Key&.
  • ВыражениеTracking::handle_type(илиTracking'::handle_type, если (b) применяется) являетсяMPL Lambda Expression; это выражение, когда оно вызывается типамиInternalHandle,TrackingHelper, причемInternalHandleявляетсяAssignableи обеспечивает гарантию нотроу для копирования и присвоения, разрешает типAssignableHandle, который также обеспечивает гарантию нотроу для копирования и присвоения и является конструируемым из и неявно конвертируемым в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] -->

    Header "boost/flyweight/tracking_tag.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct tracking_marker;
    template<typename T>
    struct is_tracking
    template<typename T>
    struct tracking;
    } // namespace boost::flyweights
    } // namespace boost
    

    Class template is_tracking

    Если пользователь не специализируется,<is_tracking<T>::type><boost::mpl::true_>, если<T>получен из<tracking_marker>, и это<boost::mpl::false_>В противном случае.

    Class template tracking

    <tracking<T>>является синтаксической конструкцией, предназначенной для указания на то, что<T>является политикой отслеживания, не прибегая к механизмам, предоставляемым шаблоном класса<is_tracking>.

    Header "boost/flyweight/refcounted_fwd.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct refcounted;
    } // namespace boost::flyweights
    } // namespace boost
    

    <refcounted_fwd.hpp>форвард объявляет класс<refcounted>.

    Header "boost/flyweight/refcounted.hpp" synopsis

    Class refcounted

    <Tracking Policy>, обеспечивая<flyweight>инстанциации со ссылкой на семантику подсчета: когда все объекты, связанные с заданным значением, уничтожаются, соответствующая запись стирается с<flyweight>внутреннегозавода.

    Header "boost/flyweight/no_tracking_fwd.hpp" synopsis

    namespace boost{
    namespace flyweights{
    struct no_tracking;
    } // namespace boost::flyweights
    } // namespace boost
    

    <no_tracking_fwd.hpp>форвард объявляет класс<no_tracking>.

    Header "boost/flyweight/no_tracking.hpp" synopsis

    Class no_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 ::


    реклама


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

    Время компиляции файла: 2024-08-30 11:47:00
    2025-07-05 03:28:56/0.0044991970062256/0