![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Supported Pragma DirectivesBoost , ,
Pragma directives supported by the Wave libraryБиблиотека препроцессоров Waveизначально поддерживает#pragma onceи#pragma message("...").директивы. В директиве#pragma послеуказано, что файл, в котором находится прагма, будет включен (открыт) только один раз. Это может быть использовано для оптимизации предварительной обработки больших блоков компиляции, которые включают в себя множество файлов. Заметим, однако, что директива#pragma onceподдерживается только при постоянной времени компиляцииBOOST_WAVE_SUPPORT_PRAGMA_ONCEПри составлении библиотеки. #pragma message(...)директива генерирует замечание, содержащее данный текст сообщения. Это может быть полезно для генерации сообщений о состоянии непосредственно из предварительно обработанного файла. Заметим, однако, что директива #pragma message(...) поддерживается только при постоянной времени компиляцииBOOST_WAVE_SUPPORT_PRAGMA_MESSAGEбыло дано во время составления библиотеки. Обратите внимание, что тело сообщения предварительно обрабатывается всякий раз, когдаBOOST_WAVE_PREPROCESS_PRAGMA_BODYКонстанта времени компиляции определялась при составлении библиотеки. Pragma directives supported by the Wave toolИнструмент препроцессора Wave также поддерживает определенные директивы#pragma, которые могут использоваться для управления некоторыми функциями инструментов. Эти директивы#прагмареализуются с использованиемinterpret_pragma().предварительная обработка крючка (см.здесь). Все директивы, описанные здесь, могут использоваться как обычные директивы#прагмаи какоператор _прагма(если включены вариады). Так, например, следующие директивы функционально идентичны: #pragma wave trace(enable) и _Pragma("wave trace(enable)") ВсеВолнаконкретной прагмы должна иметь общую форму'волновой вариант [(значение)]', где'волна'является конкретным ключевым словом (которое может быть настроено черезBOOST_WAVE_PRAGMA_KEYWORD).скомпилировать постоянную времени, см.здесьдля получения дополнительной информации,'опция'является конкретной прагматической функциональностью для запуска и'значение'является необязательным значением, которое должно быть предоставлено функциональности'опция'. В следующей таблице перечислены все возможные функции прагмы, поддерживаемые. Библиотека. Для всех общепризнанных прагм этой общей формы называется функция крючка интерпретирования_прагмы изнутриполитики предварительной обработки_хуков, так что пользователь библиотеки несет ответственность за правильную интерпретацию этих прагм.
Все прагмы, не перечисленные здесь, но отмеченные как«волна», в настоящее время сообщаются как ошибки. Обработка всех оставшихся прагм зависит от константы компиляции< Довольно легко реализовать свой собственный#pragma wave директивы. Все, что вам нужно сделать, это реализовать свою собственную функцию предварительной обработки крючкаinterpret_pragma(см.здесь), которая должна обрабатывать дополнительные директивы. Для примера, как это сделать, вы можете взглянуть на приложение драйвера волны, которое реализует все перечисленные выше прагмы с помощью предоставленной функцииinterpret_pragma(например, таймер волны#pragma()).директивы.
Copyright © 2003-2011 Hartmut Kaiser Last updated: Thursday, January 11, 2007 20:14
Статья Supported Pragma Directives раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||||||||||||||||||||||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |