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

Re-Initialize an Attribute Value before Parsing (Qi)

Boost , Spirit 2.5.2 , Customization of Spirit's Attribute Handling

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
clear_value

Шаблон clear_value - это тип, используемый в качестве точки настройки атрибута. На него ссылаются Qi повторяющиеся парсеры (Kleene, Plus, List и Repeat), чтобы повторно инициализировать экземпляр атрибута, переданный встраиваемому парсеру после его хранения в предоставленном контейнере. Этот повторно введенный экземпляр атрибута повторно используется во время следующей итерации повторяющегося парсера.

Module Headers
#include <boost/spirit/home/support/attributes.hpp>

Также см. Include Structure.

[Note] Note

Этот файл заголовка не должен быть включен непосредственно любой пользовательской программой, поскольку он обычно включен другими файлами заголовка Spirit, основанными на его содержании.

Namespace

Имя

boost::spirit::traits

Synopsis
template <typename Attrib, typename Enable>
struct clear_value
{
    static void call(Attrib& val);
};
Template parameters

Параметр

Описание

По умолчанию

Attrib

Тип, Attrib атрибута, подлежащего повторной инициализации.

Включить

Шаблон-помощник используется для выборочного включения или отключения определенных специализаций clear_value с использованием SFINAE (т.е. boost::enable_if или boost::disable_if).

void

Notation

Attrib

Тип, который будет использоваться в качестве контейнера для хранения значений атрибутов.

attr

Пример атрибута типа Attrib.

T1, T2, ...

Произвольные типы

Expression Semantics

Выражение

Семантика

clear_value<Attrib>::call(Attrib& attr)

Переинициализируйте экземпляр, упомянутый attr, самым эффективным образом.

Predefined Specializations

Спирит предопределяет специализации этой точки настройки для нескольких типов. В следующей таблице перечислены эти типы вместе с раскрытыми типами и соответствующей семантикой:

Параметры шаблона

Семантика

Attrib

Переинициализируйте с использованием присвоения по умолчанию построенного значения.

Любой тип T, для которого is_container<>::type является mpl:: True_

Звоните в функцию attr.clear() для переданного экземпляра атрибута.

boost::

Очистить экземпляр и оставить его неинициализированным.

boost::variant<T1, T2, ...>

Ссылка на clear_value точка настройки для текущего значения.

fusion::tuple<T1, T2, ...>

Ссылка на clear_value точка настройки для всех элементов тюпа.

неиспользуемый_тип

Ничего не делайте.

When to Implement

Точка настройки clear_value должна быть реализована для конкретного типа всякий раз, когда этот тип используется в качестве атрибута, который должен храниться в контейнере STL, и если этот тип не может быть повторно инициализирован с использованием одной из перечисленных выше специализаций. Примерами для этого могут быть типы, не являющиеся конструируемыми по умолчанию, или типы контейнеров, не подвергающие воздействию функции clear().


PrevUpHomeNext

Статья Re-Initialize an Attribute Value before Parsing (Qi) раздела Spirit 2.5.2 Customization of Spirit's Attribute Handling может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Customization of Spirit's Attribute Handling ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:48:48/0.0070328712463379/0