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

The MPL Reference Manual: Metafunctions

Boost , ,

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

Front Page / Metafunctions

Metafunctions

The MPL includes a number of predefined metafunctions that can be roughly classified in two categories: general purpose metafunctions, dealing with conditional type selection and higher-order metafunction invocation, composition, and argument binding, and numeric metafunctions, incapsulating built-in and user-defined arithmetic, comparison, logical, and bitwise operations.

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

  1. Передача вычислений алгоритму.
  2. Выполнение вычислений на нецелых данных.

Второй вариант использования заслуживает особого внимания. В отличие от встроенной, строго целочисленной компиляционной арифметики, числовые метафункции MPL являютсяполиморфными, с поддержкойарифметики смешанного типа.. Это означает, что они могут оперировать различными числовыми типами — например, рациональными, фиксированными или сложными числами — и что в целом вам разрешено свободно смешивать эти типы в одном выражении. Видишь?Концепция численной метафункциидля более подробной информации о цифровой инфраструктуре MPL.

Для уменьшения отрицательного синтаксического воздействия нотации метафункций на нотацию инфикса оператора все числовые метафункции позволяют передавать до N аргументов, где N определяется значениемBOOST_MPL_LIMIT_METAFUNCTION_ARITY.Макроконфигурация.

[3]Если оставить в стороне все остальные соображения, то на момент написания этой статьи (начало 2004 года) использование встроенных операторов на интегральных константах по-прежнему часто представляет проблему переносимости — многие компиляторы не могут обрабатывать конкретные формы выражений, заставляя нас использовать условную компиляцию. Поскольку числовые метафункции MPL работают на типах и инкапсулируют эти обходные пути внутри, они ускользают от этих проблем, поэтому, если вы стремитесь к переносимости, обычно рекомендуется использовать их вместо обычных операторов, даже по цене немного сниженной читаемости.

Статья The MPL Reference Manual: Metafunctions раздела может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 23:42:00/0.0085978507995605/1