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

Exceptions

Boost , Chapter 1. Phoenix 3.2.0 , Lazy List

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

Исключения используются, когда существует опасность бегства или незаконных операций в пустом списке.

Ключевой пример - взять длину непрекращающегося списка, например.

length(enum_from(1))

Это защищено с помощью исключения:

lazy_exception

Обратите внимание, что это реализовано таким образом, что определение

BOOST_PHOENIX_NO_LAZY_EXCEPTIONS

Это позволит пользователю отключить исключения на свой страх и риск.

BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH

В настоящее время определяется как 1000, и пользователь может определить свое собственное значение.

В функции длины это как реализуется:

        struct Length {
          template <typename Sig> struct result;
          template <typename This, typename L>
          struct result<This(L)>
          {
             typedef size_t type;
          };
          template <class L>
          size_t operator()( const L& ll ) const {
            typename L::delay_result_type l = delay(ll);
            size_t x = 0;
            while( !null(l)() ) {
                l = tail(l);
                ++x;
                if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH)
                   break;
            }
#ifndef BOOST_PHOENIX_NO_LAZY_EXCEPTIONS
            if (x > BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH)
                 throw lazy_exception("Your list is too long!!");
#endif
            return x;
          }
        };

PrevUpHomeNext

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




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



:: Главная :: Lazy List ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 04:17:33/0.0052640438079834/1