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

Check Utilities

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 26. Boost.Predef 1.4.1

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

Утилита<predef_check>предоставляет возможность для создания программы, которая будет проверять заданный набор выражений против определений, которые она обнаружила при строительстве.

predef_check programs

Несмотря на то, что существует только одна программа<predef_check>, существуют вариации для каждого из языков, которые обнаруживаются Predef, чтобы соответствовать соглашению для файлов источников. Для всех из них один ссылается со списком аргументов выражения. Выражения оцениваются в контексте конкретной программы<predef_check>, и если все они истинны, возвращается ноль (0). В противном случае индекс первого ложного выражения возвращается.

Синтаксис выражения прост:

predef-definition [ relational-operator version-value ]

<predef-definition>может быть любым из определений Предефа. Например,<BOOST_COMP_GCC>.

<relational-operator>может быть любой из:<>>,<<>,<>=>,<<=>,<==>и<!=>.

<version-number>может быть полным или частичным тройным значением версии. Если это частичная тройная версия, она завершается нулями. Это<x.y>эквивалентно<x.y.0>и<x>эквивалентно<x.0.0>.

<relations-operator>и<version-number>могут быть опущены. В этом случае он эквивалентен:

predef-definition > 0.0.0

Using with Boost.Build

Вы можете использовать<predef_check>программы непосредственно из Boost Build для настройки целевых требований. Это полезно для управления тем, что создается в рамках вашего проекта, на основе подробной информации о версии, доступной в Predef. Основное использование простое:

import path-to-predef-src/tools/check/predef
    : check require
    : predef-check predef-require ;
exe my_windows_program : windows_source.cpp
    : [ predef-require "BOOST_OS_WINDOWS" ] ;

Этот простой вариант использования пропустит создание<my_windows_program>, если вы не строите для Windows. Подобно прямому<predef_check>, вы можете передавать мутные выражения, используя реляционные сравнения. Например:

import path-to-predef-src/tools/check/predef
    : check require
    : predef-check predef-require ;
lib my_special_lib : source.cpp
    : [ predef-require "BOOST_OS_WINDOWS != 0" "BOOST_OS_VMS != 0"] ;

И в этом случае<my_special_lib>создается только тогда, когда ОС не является Windows или VMS. Правило<requires>является особым случаем правила<check>. И определяется в его терминах:

rule require ( expressions + : language ? )
{
    return [ check $(expressions) : $(language) : : <build>no ] ;
}

Выражение может также использовать явные «и», «или» логические операторы для более сложных проверок:

import path-to-predef-src/tools/check/predef
    : check require
    : predef-check predef-require ;
lib my_special_lib : source.cpp
    : [ predef-require "BOOST_OS_WINDOWS" or "BOOST_OS_VMS"] ;

Вы можете использовать правило<check>для большего контроля и для реализации чего-то, кроме контроля того, что создается. Определение для правила<check>:

rule check ( expressions + : language ? : true-properties * : false-properties * )

При использовании в качестве набора цели ускоренного строительства это правило добавит<true-properties>к цели, если все<expressions>оцениваются как истинные. В противном случае<false-properties>добавляются в качестве требований. Например, вы можете использовать его для включения или отключения функций в ваших программах:

import path-to-predef-src/tools/check/predef
    : check require
    : predef-check predef-require ;
exe my_special_exe : source.cpp
    : [ predef-check "BOOST_OS_WINDOWS == 0"
        : : <define>ENABLE_WMF=0
        : <define>ENABLE_WMF=1 ] ;

Для<check>и<require>аргумент контролирует, какой вариант программы<predef_check>используется для проверки выражений. Он по умолчанию «c++», но может быть любым из: «c», «cpp», «objc» и «objcpp».


PrevUpHomeNext

Статья Check Utilities раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 26. Boost.Predef 1.4.1 может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 26. Boost.Predef 1.4.1 ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:11:40/0.0066139698028564/0