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

Getting Started

Boost , Chapter 1. Boost.LocalFunction 1.0.0 , Chapter 1. Boost.LocalFunction 1.0.0

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

В этом разделе объясняется, как настроить систему для использования этой библиотеки.

Программисты должны иметь достаточно знаний, чтобы использовать эту библиотеку после прочтения разделов Введение , Начало работы и Источник . С разделами Advanced Topics и Reference можно ознакомиться позже, чтобы получить более глубокие знания о библиотеке. Все остальные разделы данной документации можно считать факультативными.

Некоторые сноски обозначены словом « Обоснование». Они объясняют причины решений, принятых при проектировании и реализации этой библиотеки.

В большинстве примеров, представленных в данной документации, буст. Detail/LightweightTest (boost/detail/lightweight_test.hpp) BOOST_TEST используется для проверки условий корректности. Макрос BOOST_TEST концептуально похож на assert, но отказ проверенного состояния не прерывает программу, вместо этого он заставляет boost::report_errors возвращать ненулевой код выхода программы. [3]

Реализация этой библиотеки использует препроцессорное и шаблонное метапрограммирование (при поддержке Boost.Preprocessor и Boost.MPL), шаблоны с частичными специализациями и указателями функций (аналогично Boost.Function) и автоматическую дедукцию типа (при поддержке Boost.Typeof). Авторы первоначально разработали и протестировали библиотеку на:

  1. GNU Compiler Collection (GCC) C++ 4.5.1 на Ubuntu Linux 10.
  2. GCC 4.3.4 и 4.5.3 (с функциями C++11 и без них включено -std=c++0x) на Cygwin.
  3. Miscrosoft Visual C++ (MSVC) 8.0 для Windows XP и Windows 7.

Для получения подробной информации о поддерживаемых компиляторах и платформах см. библиотеку regressions test results.

Эта библиотека состоит только из файлов заголовка. Поэтому не существует предварительно скомпилированного объектного файла, который должен быть установлен или связан. Программисты могут просто инструктировать компилятор C++, где найти файлы заголовка библиотеки (-I опция для GCC, /I опция для MSVC и т.д.), и они могут начать компиляцию кода с помощью этой библиотеки.

Реализация библиотеки использует Boost.Typeof для автоматического вывода типов связанных переменных (см. раздел Tutorial). Для компиляции кода в режиме эмуляции типа все типы должны быть надлежащим образом зарегистрированы с использованием BOOST_TYPEOF_REGISTER_TYPE и BOOST_TYPEOF_REGISTER_TEMPLATE или соответствующих заголовков Boost.Typeof (см. исходный код большинства примеров, представленных в этой документации).

Следующие элементы являются частью частного API библиотеки, они не документируются и не должны использоваться программистами напрямую: [4]

  • Любой символ, определяемый файлами в каталоге boost/local_function/aux_/ или boost/local_function/detail/ (эти файлы заголовка не должны быть непосредственно включены программистами).
  • Любой символ в пределах boost::local_function::aux или boost::local_function::detail namespace.
  • Любой символ, префиксированный boost_local_function_aux_... или boost_local_function_detail_... (независимо от его пространства имен).
  • Любой символ, префиксированный BOOST_LOCAL_FUNCTION_AUX_... или BOOST_LOCAL_FUNCTION_DETAIL_... (независимо от его пространства имен).

Некоторое поведение библиотеки может быть изменено во время компиляции путем определения специальных макросов конфигурации . Если макрос конфигурации не определен, библиотека будет использовать соответствующее значение по умолчанию для него. Все макросы конфигурации определены в файле заголовка boost/local_function/config.hpp. Настоятельно рекомендуется не менять макроопределения конфигурации библиотеки, если это не является строго необходимым.



[3] Обоснование. Использование Boost. Деталь/легкий вес Тест позволяет добавлять примеры в библиотечные регрессионные тесты, чтобы убедиться, что они всегда компилируются и выполняются правильно.

[4] Оправдание. Эта библиотека объединяет символы, указанные программистами (например, имя локальной функции) с другими символами (например, специальными префиксами или номерами файловых линий), чтобы сделать внутренние символы с уникальными именами, чтобы избежать столкновений имен. Эти символы разделены буквой «X», когда они сцеплены, поэтому они легче читаются во время отладки (символ подчеркивания «_» не может использоваться вместо буквы «X», потому что, если исходные символы уже содержали ведущее или задающее подчеркивание, сцепление может привести к символу с двойным подчеркиванием «___», который зарезервирован стандартом C++). Символы «aux» являются приватными для этой библиотеки, в то время как символы «detail» могут использоваться в Boost другими библиотеками.


PrevUpHomeNext

Статья Getting Started раздела Chapter 1. Boost.LocalFunction 1.0.0 Chapter 1. Boost.LocalFunction 1.0.0 может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 1. Boost.LocalFunction 1.0.0 ::


реклама


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

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