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

THE BOOST MPL LIBRARY: Representing Quantities

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 / Tutorial: Metafunctions and Higher-Order Metaprogramming / Dimensional Analysis / Representing Quantities

Representing Quantities

Перечисленные выше типы по-прежнему являются чистыми метаданными; чтобы проверить реальные вычисления, нам нужно каким-то образом привязать их к нашим данным времени выполнения. Простая обертка с числовым значением, параметризованная по типу номераTи по своим размерам соответствует счету:

template <class T, class Dimensions>
struct quantity
{
    explicit quantity(T x)
       : m_value(x)
    {}
    T value() const { return m_value; }
 private:
    T m_value;
};

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

quantity<float,length> l( 1.0f );
quantity<float,mass> m( 2.0f );

Обратите внимание, чтоРазмерынигде не встречается в определенииколичествовне списка параметров шаблона; еготолькороль состоит в том, чтобы гарантировать, чтоlиmимеют разные типы. Из-за этого мы не можем совершить ошибку, назначив длину массе:

m = l;    // compile-time type error

Статья THE BOOST MPL LIBRARY: Representing Quantities раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

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