Files
more/getting_started/detail/distro.rst

3.0 KiB

The Boost Distribution

This is a sketch of the resulting directory structure:

|boost_ver-bold||//| .................*The “boost root directory”*

index.htm .........*A copy of www.boost.org starts here* boost|//| .........................*All Boost Header files* |precompiled-dir| libs|//| ............*Tests, .cpp*s*, docs, etc., by library* index.html ........*Library documentation starts here* algorithm|//| any|//| array|//| …more libraries… status|//| .........................*Boost-wide test suite* tools|//| ...........*Utilities, e.g. Boost.Build, quickbook, bcp* more|//| ..........................*Policy documents, etc.* doc|//| ...............*A subset of all Boost library docs*

Header Organization

The organization of Boost library headers isn't entirely uniform, but most libraries follow a few patterns:

  • Some older libraries and most very small libraries place all public headers directly into boost|/|.

  • Most libraries' public headers live in a subdirectory of boost|/|, named after the library. For example, you'll find the Python library's def.hpp header in

    boost|/|python|/|def.hpp.

  • Some libraries have an “aggregate header” in boost|/| that #includes all of the library's other headers. For example, Boost.Python's aggregate header is

    boost|/|python.hpp.

  • Most libraries place private headers in a subdirectory called detail|/|, or aux_|/|. Don't expect to find anything you can use in these directories.

It's important to note the following:

  1. The path to the boost root directory (often |default-root|) is sometimes referred to as $BOOST_ROOT in documentation and mailing lists .

  2. To compile anything in Boost, you need a directory containing the boost|/| subdirectory in your #include path. |include-paths|

  3. Since all of Boost's header files have the .hpp extension, and live in the boost|/| subdirectory of the boost root, your Boost #include directives will look like:

    #include <boost/*whatever*.hpp>

    or

    #include "boost/*whatever*.hpp"

    depending on your preference regarding the use of angle bracket includes. |forward-slashes|

  4. Don't be distracted by the doc|/| subdirectory; it only contains a subset of the Boost documentation. Start with libs|/|index.html if you're looking for the whole enchilada.