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

Macro BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Boost.TypeIndex Header 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

Macro BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING

BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING

Synopsis

// In header: <boost/type_index.hpp>
BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING

Description

Это помощник макро для создания правильных симпатичных имен () с RTTI off.

BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING Макро может быть '(begin_skip, end_skip, runtime_skip, runtime_skip_until)' с параметрами для добавления поддержки компиляторов, которые по умолчанию не признаются библиотекой TypeIndex.

Пример:

Представьте себе ситуацию, когда

boost::typeindex::ctti_type_index::type_id<int>().pretty_name() 

возвращает следующую строку:

"static const char *boost::detail::ctti<int>::n() [T = int]" 

и

boost::typeindex::ctti_type_index::type_id<short>().pretty_name() 

возвращает следующее:

"static const char *boost::detail::ctti<short>::n() [T = short]" 

Как мы можем видеть, первые 39 символов являются «статичными запорами char *boost::detail::ctti<», и они не зависят от типа T. После первых 39 символов у нас есть человеческое читаемое имя типа, которое дублируется в конце строки. Стринг всегда заканчивается на ''', который потребляет 1 символ.

Теперь, если мы определим BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING к (39, 1, ложно, "") мы получим

"int>::n() [T = int" 

для boost::typeindex::ctti_type_index::type_id().pretty_name() и

"short>::n() [T = short" 

для boost::typeindex::ctti_type_index::type_id().pretty_name().

Теперь нам нужно позаботиться о персонажах, которые идут до последнего упоминания нашего типа. Мы сделаем это, сказав макросу, что нам нужно отрезать все, что происходит до того, как «Т =», включая «Т =»:

(39, 1, true, "T = ") 

В случае командной строки GCC или Clang необходимо добавить следующую строку при компиляции всех источников:

-DBOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING='(39, 1, true, "T = ")'

Дополнительные сведения см. в разделе RTTI.


Статья Macro BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING раздела The Boost C++ Libraries BoostBook Documentation Subset Boost.TypeIndex Header Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Boost.TypeIndex Header Reference ::


реклама


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

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