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

Internal Support Code

Boost , Chapter 1. Boost.Multiprecision , Reference

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

Есть некоторые классы черт, о которых должны знать авторы новых бэкэндов:

namespace boost{ namespace multiprecision{ namespace detail{
template<typename From, typename To>
struct is_explicitly_convertible;
}}}

Наследуется от<boost::integral_constant<bool,true>>, если тип<From>имеет явное преобразование от<To>.

Для компиляторов, поддерживающих SFINAE-выражения C++11, эта черта должна «просто работать». В противном случае он наследуется от<boost::is_convertible<From,To>::type>и должен быть специализирован для Бэкэндов, у которых конструкторы помечены как<explicit>.

template <class From, class To>
struct is_lossy_conversion
{
   static const bool value = see below;
};

<value>Верно, если переход от<From>к<To>приведет к потере точности, и<false>в противном случае.

Версия по умолчанию этого признака просто проверяет, является ливидпреобразования (например, из плавающей точки в целочисленный тип) по своей сути убыточным. Обратите внимание, что если один из типов<From>или<To>относится к неизвестной категории чисел (поскольку<number_category>не специализируется на этом типе), то эта черта будет<true>.

template<typename From, typename To>
struct is_restricted_conversion
{
   static const bool value = see below;
};

<value>является<true>, если<From>является только явно конвертируемым в<To>и не имплицитно конвертируемым, или если<is_lossy_conversion<From,To>::value>является<true>. В противном случае<false>.

Обратите внимание, что в то время как эта черта является конечным арбитром, конструкторы которого помечены как<explicit>в классе<number>, авторы бэкэнд-типов обычно должны специализировать одну из черт выше, а не эту непосредственно.

template <class T>
is_signed_number;
template <class T>
is_unsigned_number;

Эти две черты наследуются от<mpl::true_>или<mpl::false_>, по умолчанию типы предполагается подписать, если<is_unsigned_number>не является специализированным для этого типа.


PrevUpHomeNext

Статья Internal Support Code раздела Chapter 1. Boost.Multiprecision Reference может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 20:43:08/0.0060160160064697/0