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

History

Boost , Chapter 1. The Type Traits Introspection Library , Chapter 1. The Type Traits Introspection Library

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

Post Boost 1.55 development

  • Прохождение действительного некласса в качестве закрывающего типа макрометафункций запроса всегда возвращается ложным, а не вызывает ошибку компилятора.
  • Прохождение действительного некласса в качестве закрывающего типа макрометафункции BOOST_TTI_MEM_TYPE всегда возвращает тип маркера, а не производит ошибку компилятора.

Boost 1.54

  • TTI находится в Boost и макросы были упрощены
  • Разрывные изменения
    • Метафункции нулевого типа больше не являются частью библиотеки.
    • Единые общие макро-метафункции теперь используются для интроспекции данных членов, функций членов, статических данных членов, статических функций членов, данных, функций, типов и шаблонов.
    • Композитные формы макрометафункций теперь складываются в основные макросы.
    • Метафункция BOOST_TTI_HAS_TYPE принимает необязательный второй параметр шаблона, который может быть лямбда-выражением MPL.
    • Метафункция BOOST_TTI_MEMBER_TYPE имеет необязательный тип маркера.

Version 1.5

  • TTI был принят в Boost. Это первая итерация изменений, поскольку библиотека готовится для Boost на основе обзора библиотеки и комментариев и предложений конечных пользователей. Для каждой итерации изменений, сделанных на основе комментариев и предложений конечных пользователей, я создам новый номер версии, чтобы конечные пользователи, которые хотят следить за прогрессом библиотеки для Boost, могли знать, что меняется. Я буду ориентироваться на Boost 1.49 для завершения всех изменений и прохождения всех тестов, чтобы TTI был готов к копированию из багажника Boost в выпуск Boost для включения в Boost.
  • Разрывные изменения
    • Метафункции Макро больше не генерируются ни в одном пространстве имен, а непосредственно в рамках конечного пользователя.
    • Макросы, генерирующие класс метафункций, для каждого макроса метафункции были удалены. Конечный пользователь может использовать усилитель::mpl:::quote вместо этого, если он хочет.
    • Макросы, генерирующие имя метафункции, были упрощены таким образом, что не генерируется имя пространства имен, и для каждого макроса макрометафункций существует одно имя метафункции, генерирующее макрос.
    • BOOST_TTI_TRAITS_GEN Макро было удалено.
    • Отдельные имена файлов заголовков изменились, чтобы более точно отражать имена макросов метафункций.
    • Названия композитной функции-члена и композитных макросов статической функции-члена изменились с BOOST_TTI_HAS_COMP_MEMBER_FUNCTION на BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG От BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION до BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG.
  • Все имена параметров шаблонов теперь уникальны для TTI, чтобы избежать столкновений имен.
  • Метафункции нулевого типа могут передаваться неклассовым типам как есть.

Version 1.4

  • Разрывные изменения
    • BOOST_TTI_HAS_MEMBERBOOST_TTI_TRAIT_HAS_MEMBER) изменен наBOOST_TTI_HAS_COMP_MEMBER_FUNCTIONBOOST_TTI_MTFC_HAS_MEMBER] изменен наBOOST_TTI_MTFC_HAS_MEMBER_FUNCTIONBoost_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION. Это семейство функций теперь поддерживает только функции-члены с композитным синтаксисом.
    • BOOST_TTI_HAS_STATIC_MEMBERBOOST_TTI_TRAIT_HAS_STATIC_MEMBERBOOST_TTI_COMP_MEMBER_FUNCTIONиBOOST_TTI_MTFC_HAS_STATIC_MEMBERBOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBERBOOST_TTI_MTFC_COMP_MEMBER_FUNCTIONBOOST_TTI_MTFC_STATIC_MEMBER_FUNCTIONBOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION. Это семейство функций теперь поддерживает только статические функции-члены с композитным синтаксисом.
    • boost::tti::mf_has_static_dataбыл изменен наboost::tti::mf_has_static_member_data.
  • ДобавленоBoost_TTI_HAS_STATIC_MEMBER_DATAи семейство для интроспекции статических данных членов.
  • В настоящее время поддерживается включение конкретных файлов заголовков для более быстрой компиляции.
  • Включение макрометафункций, генерирующих макросы.
  • Сократите имена тестовых файлов и файлов заголовков тестов.
  • Добавлена тема документации по интроспективным шаблонам функций.

Version 1.3

  • Переломные изменения
    • Файлы заголовков сокращены до «boost/tti/tti.hpp» и «boost/tti/tti_vm.hpp».
    • Библиотека следует конвенциям Boost.
      • Изменили имена файлов на нижний регистр и подчеркивания.
      • Пространство имен верхнего уровня tti стало пространством имен::tti.
      • Макросы начинаются сBOOST_TTI_вместоTTI_, как и ранее.
    • Вариадная макроподдержка работает только с последней версией variadic_macro_library, которая является версией 1.3+.

Version 1.2

  • Добавлен набор макросов класса метафункций для передачи макрометафункций в виде метаданных. Это дополняет передачу макрометафункций в качестве метаданных с использованием выражений заполнителя.

Version 1.1

  • Библиотека теперь также компилирует с gcc 3.4.2 и gcc 3.4.5.
  • В документацию были добавлены примеры использования.
  • В документации вышеупомянутые метафункции вложенного типа теперь называются метафункциями нулевого типа.
  • BOOST_TTI_HAS_TYPEиboost::tti::mf_has_typeтеперь имеют опциональную проверку типа.
  • Реализована новая функциональность макрометафункции, которая позволяет рассматривать композитные типы как индивидуальные. К ним относятся:
    • BOOST_TTI_HAS_MEMBER_DATA
    • BOOST_TTI_HAS_MEMBER_FUNCTION
    • BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION
  • Новая метафункция нулевого типаboost::tti::mf_has_static_member_functionиспользует новую базовуюBOOST_TTI_HAS_STATIC_MEMBER_FUNCTIONМакрометафункция. Его подпись использует необязательную последовательность MPL для типов параметров и необязательный тип тега Boostfunction_types.
  • Новые метафункции нулевого типаповышаютtti::допустимый_member_typeиповышенныйttitti::ttimf_valid_member_typeдля проверки того, вернулся ли «тип» от вызоваBOOST_TTI_MEMBER_TYPEилиповышенный::ttimf_member_type.
  • Сложные изменения
    • BOOST_TTI_TYPE_CHECK_TYPEDEFиboost::tti::mf_has_type_check_typedefбыли удалены, а функциональность в них сложена вBOOST_TTI_HAS_TYPE::mf_has_type.
    • BOOST_TTI_MEMBER_TYPE и boost::tti::mf_member_type больше не возвращают «действительной» булевой постоянной. Используйте вместо этого метафункции::tti::valid_member_type или boost:::tti::mf_valid_member_type (см. выше).
    • boost::tti::mf_has_static_functionбыла удалена и ее функциональность была перенесена наboost::tti::mf_has_static_member_function(см. выше).
    • boost::tti::mf_member_dataиспользует новый базовыйBOOST_TTI_HAS_MEMBER_DATAмакрометафункция.
    • Подпись дляповышения::tti::mf_has_member_functionизменилась, чтобы использовать необязательную последовательность MPL вперед для типов параметров и необязательное увеличениефункции_типовтипа метки.
    • Все метафункции нулевого типа принимают свой соответствующий параметр макрометафункции как класс в виде выражения Boost MPL lambda вместо параметра шаблона шаблона, как ранее. Использование экспрессии заполнителя является самым простым способом передачи соответствующей макрометафункции к ее метафункции нулевого типа.

Version 1.0

Первоначальная версия библиотеки.


PrevUpHomeNext

Статья History раздела Chapter 1. The Type Traits Introspection Library Chapter 1. The Type Traits Introspection Library может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 1. The Type Traits Introspection Library ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-04 21:17:14/0.027221918106079/1