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

Design

Boost , Chapter 1. The Variadic Macro Data Library 1.9 , Chapter 1. The Variadic Macro Data Library 1.9

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

Первоначальный толчок к созданию этой библиотеки был вполне практичным. Я работал над другой библиотекой макрофункций, которая использовала функцию Boost PP, и я понял, что если бы я мог использовать вариадные макросы с другой библиотекой, удобство использования конечного пользователя для этой библиотеки было бы проще. Поэтому первоначальной главной целью этой библиотеки было взаимодействие вариадных макроданных с Boost PP самым простым и понятным способом.

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

После того, как в Boost PP была добавлена поддержка вариадных данных, я убрал функциональность этой библиотеки, чтобы включить только вариадную макроподдержку для функциональности, которая была дополнением к поддержке в Boost PP. Эта функциональность может рассматриваться как экспериментальная, поскольку она в значительной степени опиралась на макрос, который тестировался на пустой вход, который Пол Менсонидес, автор Boost PP, опубликовал в Интернете, и который по самой природе препроцессора C++ немного ошибочен, но который был самым близким приближением такой функциональности, которая, как я полагал, могла быть сделана. Мне пришлось несколько настроить этот макрос для препроцессора Visual C++, соответствие которого стандарту C++ для макрообработки в ряде областей заметно некорректно. Но я все еще чувствовал, что эта функциональность может быть использована в определенных ситуациях и может быть полезна для других. Используя эту функциональность, я смог создать несколько других макросов, которые тестировались для различных типов данных Boost PP. Я также смог добавить функциональность, основанную на отличной работе Пола Мендсонида, для обработки данных при предварительной обработке.

Вся эта конкретная функциональность невозможна без использования вариадных макросов. Но я сохранил эти функции как минимум из-за сложности использования вариадных макросов с компиляторами, в первую очередь Visual C++, реализация вариадных макросов которого является нестандартной и поэтому очень трудно работать правильно, когда вариадные макросы должны использоваться.

Затем я понял, что если у меня будет библиотека, которая использует вариадные макросы, я должен увидеть, что я могу сделать в области анализа данных препроцессора. Это привело к реорганизации библиотеки как набора макросов в основном для анализа данных препроцессора. Все это теперь построено на моем использовании почти идеальной проверки на пустоту, которую изначально создал Пол Менсонид.


PrevUpHomeNext

Статья Design раздела Chapter 1. The Variadic Macro Data Library 1.9 Chapter 1. The Variadic Macro Data Library 1.9 может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 1. The Variadic Macro Data Library 1.9 ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:23:41/0.025765180587769/1