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

Custom Terminals

Boost , Chapter 1. Phoenix 3.2.0 , Inside Phoenix

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

Терминалы используются в Фениксе для прозрачной обработки специальных значений. Например, поскольку Феникс улавливает все по значению, нам нужно было использовать<boost::reference_wrapper>для приведения эталонной семантики в Феникс.

Пользовательские терминалы могут быть любого класса обертки:

template <typename T>
struct is_custom_terminal;

Нужно специализироваться, чтобы Феникс распознал этот тип обертки.<default_action>Призыв<custom_terminal<T>>.

Пример:

// Call out boost::reference_wrapper for special handling
template<typename T>
struct is_custom_terminal<boost::reference_wrapper<T> >
  : mpl::true_
{};
// Special handling for boost::reference_wrapper
template<typename T>
struct custom_terminal<boost::reference_wrapper<T> >
{
    typedef T &result_type;
    template <typename Context>
    T &operator()(boost::reference_wrapper<T> r, Context &) const
    {
        return r;
    }
};

PrevUpHomeNext

Статья Custom Terminals раздела Chapter 1. Phoenix 3.2.0 Inside Phoenix может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Inside Phoenix ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:24:48/0.0032958984375/0