![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
THE BOOST MPL LIBRARY: Numeric Metafunction Protocol/InfrastructureBoost , ,
|
Front Page / Changelog & History / Changes in Boost 1.32.0 Release / Numeric Metafunction Protocol/Infrastructure |
Арифметические, сравнительные и битовые метафункции теперь полиморфны и могут работать на различных числовых типах, включая рациональные, фиксированные и сложные числа. Они позволяют смешанную арифметику, что означает, что вы можете выполнить операцию на аргументах разных типов, и результат даст самый большой / самый общий из типов аргументов. Инфраструктура позволяет свободно смешивать определяемые пользователем числовые типы с предопределенными типами библиотек. См. libs/mpl/test/numeric_ops.cpp для иллюстративного примера и справочное руководство для формальной спецификации инфраструктуры.
Если вы использовали числовые метафункции MPL в своем собственном классе интегральной обертки, аналогичном mpl::int_, вы можете подключить свой класс к новой инфраструктуре, расширив его следующим членом:
typedef mpl::integral_c_tag tag;
Например:
Before | Now |
---|---|
template< int n > struct my_int {static int const value = n; typedef my_int type; }; |
template< int n>struct my_int { typedef mpl::integral_c_tag tag;static int const value = n; typedef my_int type; }; |
Статья THE BOOST MPL LIBRARY: Numeric Metafunction Protocol/Infrastructure раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |