Есть две вещи, которые вам нужно решить, прежде чем использовать Boost. Библиотека TR1: следует ли использовать собственную стандартную библиотеку TR1 (если она имеет), и которая включает в себя стиль для использования.
Если ваша стандартная библиотека реализует TR1, и вы хотите использовать его, а не использовать эквиваленты Boost, то вам нужно будет предпринять некоторые явные действия, чтобы включить его: это может быть предпроцессорное определение, специальный переключатель компилятора или другой путь. Вам нужно будет проконсультироваться с вашей компиляторной документацией, чтобы узнать, какие из этих действий вам нужно предпринять.
При условии, что Boost правильно настроен, все должно теперь «просто работать» и код, написанный для использования Boost. TR1 будет включать ваши стандартные заголовки библиотеки, а не Boost.
Есть два способа, которыми вы можете включить Boost. Заголовки TR1, например, если вы заинтересованы в Share_ptr, то вы можете использовать:
#include<boost/tr1/memory.hpp>
или:
#include<memory>
Первый вариант - предпочтительный метод для других библиотек Boost. Второй вариант стандартно-соответствующий, но требует, чтобы вы добавили boost-install-path/boost/tr1/tr1>tr1 к вашему компилятору включает поисковый путь. Обратите внимание, что вы не должны копировать заголовки в бульваре/tr1/tr1 в каталог, называемый "включен", что заставит их прекратить работу.
Импортант Примечание #1
Включение заказа пути очень важно, если вы хотите, чтобы эта библиотека работала правильно. Если вы получаете ошибки компилятора, то заподозрите дополнительные пути. Правильный заказ:
1) скорлупа/буст/tr1/tr1 2) импульс-корот 3) любые другие стандартные замены библиотеки (например, STLport). 4) Ваша обычная стандартная библиотека.
Импортант Note #2: GNU C++ Пользователи
Обычно эта библиотека должна «просто работать» с компилятором GNU C++.
Однако, если Boost установлен в /usr/include затем вы можете получить сообщение об ошибке формы:
В этом случае попробуйте определить макро BOOST_TR1_DISABLE_INCLUDE_NEXT при строительстве, и если это не работает, определите макрос BOOST_TR1_GCC_INCLUDE_PATH на имя каталога, содержащего файлы gcc: это, вероятно, будет что-то вроде "g++-v4", но, к сожалению, варьируется от распространения к распространению.
Импортант Note #3: Borland C++ Пользователи
Компилятор Borland имеет особенно сломанную форму #include, которая на самом деле будет искать файл под названием array.h если вы #include<array>. Для того, чтобы библиотека работала с компилятором Borland, вам нужно будет установить следующие пути включения:
1) скорлупа/буст/tr1/tr1/bcc32 2) скорлупа/буст/tr1/tr1 3) импульс-корот 4) любые другие стандартные замены библиотеки (например, STLport). 5) Ваша обычная стандартная библиотека.
Импортант Note #4: Sun C++ Пользователи
Компилятор Sun имеет особенно интересную форму #include, которая на самом деле будет искать файл под названием array.SUNWCCh если вы #include<array>. Более того, он не будет включать стандартный файл заголовка, который, по его мнению, уже виден. Для того, чтобы эта библиотека работала с компилятором Sun, вы можете либо передать недокументированный переключатель компилятора "-Qoption ccfe -nosunwcch" компилятору, либо еще вам нужно будет настроить следующие пути включения:
1) импульс-корот/буст/т1/т1/т1/сун 2) импульс-корот/буст/т1/т1 3) импульс-корот 4) любые другие стандартные замены библиотеки (например, STLport). 5) Ваша обычная стандартная библиотека.
Независимо от того, как включается установка, пользовательский код, написанный для работы с Boost. TR1 точно такой же, как код, написанный для использования нативной реализации tr1. То есть ссылки на классы и функции должны явно использовать std::tr1 пространство имен или , используяnamespacestd::tr1 заявление. Например,
Статья Usage раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 36. Boost.TR1 может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.