123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <chapter xml:id="stdint.h">
- <title><tt>__vic/stdint.h</tt></title>
- <p><tt><stdint.h></tt> из ISO C99 для C++98. Начиная с C++11 - просто
- перенаправление на <tt><cstdint></tt>.</p>
- <p>Дополнительно содержит некоторые метафункции для шаблонного
- метапрограммирования.</p>
- <chapter xml:id="intN_t">
- <title>Целые с точной длиной</title>
- <p>Гарантируется, что следующие типы доступны в <b>глобальном пространстве
- имён</b>:</p>
- <list style="bulleted">
- <item><tt>int8_t</tt></item>
- <item><tt>int16_t</tt></item>
- <item><tt>int32_t</tt></item>
- <item><tt>int64_t</tt></item>
- <item><tt>uint8_t</tt></item>
- <item><tt>uint16_t</tt></item>
- <item><tt>uint32_t</tt></item>
- <item><tt>uint64_t</tt></item>
- </list>
- </chapter>
- <chapter xml:id="int_leastN_t">
- <title>Целые с минимальной длиной</title>
- <p>Гарантируется, что следующие типы доступны в <b>глобальном пространстве
- имён</b>:</p>
- <list style="bulleted">
- <item><tt>int_least8_t</tt></item>
- <item><tt>int_least16_t</tt></item>
- <item><tt>int_least32_t</tt></item>
- <item><tt>int_least64_t</tt></item>
- <item><tt>uint_least8_t</tt></item>
- <item><tt>uint_least16_t</tt></item>
- <item><tt>uint_least32_t</tt></item>
- <item><tt>uint_least64_t</tt></item>
- </list>
- </chapter>
- <chapter xml:id="int_fastN_t">
- <title>Быстрейшие целые с минимальной длиной</title>
- <p>Гарантируется, что следующие типы доступны в <b>глобальном пространстве
- имён</b>:</p>
- <list style="bulleted">
- <item><tt>int_fast8_t</tt></item>
- <item><tt>int_fast16_t</tt></item>
- <item><tt>int_fast32_t</tt></item>
- <item><tt>int_fast64_t</tt></item>
- <item><tt>uint_fast8_t</tt></item>
- <item><tt>uint_fast16_t</tt></item>
- <item><tt>uint_fast32_t</tt></item>
- <item><tt>uint_fast64_t</tt></item>
- </list>
- </chapter>
- <chapter xml:id="intmax_t">
- <title>Целые наибольшего размера</title>
- <p>Гарантируется, что следующие типы доступны в <b>глобальном пространстве
- имён</b>:</p>
- <list style="bulleted">
- <item><tt>intmax_t</tt></item>
- <item><tt>uintmax_t</tt></item>
- </list>
- </chapter>
- <chapter xml:id="intptr_t">
- <title>Целые, вмещающие указатели на объекты</title>
- <p>Гарантируется, что следующие типы доступны в <b>глобальном пространстве
- имён</b>:</p>
- <list style="bulleted">
- <item><tt>intptr_t</tt></item>
- <item><tt>uintptr_t</tt></item>
- </list>
- </chapter>
- <chapter xml:id="int_exactly_bytes">
- <title><tt>int_exactly_bytes<></tt>, <tt>uint_exactly_bytes<></tt></title>
- <code-block lang="C++"><![CDATA[
- template<unsigned SizeInBytes>
- struct int_exactly_bytes
- {
- using type = ]]><nt><signed-integer-type-of-the-corresponding-size></nt><![CDATA[;
- };
- template<unsigned SizeInBytes>
- struct uint_exactly_bytes
- {
- using type = ]]><nt><unsigned-integer-type-of-the-corresponding-size></nt><![CDATA[;
- };
- // BEGIN C++11
- template<unsigned N>
- using int_exact_bytes = typename int_exactly_bytes<N>::type;
- template<unsigned N>
- using uint_exact_bytes = typename uint_exactly_bytes<N>::type;
- // END C++11
- ]]></code-block>
- <p>Метафункции, возвращающие знаковый/беззнаковый целый тип для указанного
- размера в байтах. Более короткие псевдонимы доступны в режиме C++11 и выше.
- Допустимые значения для <tt>SizeInBytes</tt>: <tt>1</tt>, <tt>2</tt>,
- <tt>4</tt>, <tt>8</tt>.</p>
- <section><title>Пример</title>
- <code-block lang="C++"><![CDATA[
- typedef __vic::int_exactly_bytes< sizeof(void *) >::type my_intptr_t;
- // or in C++11
- using my_intptr_t = __vic::int_exact_bytes< sizeof(void *) >
- assert( sizeof(my_intptr) == sizeof(intptr_t) );
- ]]></code-block>
- </section>
- </chapter>
- </chapter>
|