Posts
Stay up to date with Boost and the C++ ecosystem with the latest news, videos, resources, and user-created content.
Latest Posts
-
Testing editing descriptionBoost’s development is managed with Git, allowing contributors to maintain local copies of the full project history. Individual libraries are stored in separate repositories under the boostorg GitHub organization, enabling independent cloning, modification, committing, and pushing of changes.
-
Testing againBoost development is based on Git, a distributed version control system that enables multiple contributors to maintain independent copies and track changes. Each Boost library is stored in its own GitHub repository under the boostorg organization, allowing modular access and straightforward cloning, committing, and pushing of modifications. A super‑project repository aggregates all libraries as submodules and contains additional tooling repositories such as build and CMake support. Separate master and develop branches exist for both individual libraries and the super‑project, with develop branches used for feature integration and continuous‑integration testing before promotion to master. The super‑project’s master branch is derived directly from the libraries’ master branches, never from its own develop branch, to avoid merge conflicts.
-
Review tabletRequired and optional tests for Boost libraries are described in the policy. An automatic regression test suite with HTML compiler status tables and continuous integration is used to ensure regular execution of tests. One or more test programs must be supplied for each library, must compile, link, and run quickly, and must report errors by returning a non‑zero exit code. Fast basic tests are separated from longer full‑coverage tests, and an alternate test strategy must be documented when standard policies are not applicable. A Jamfile is expected to be provided to drive the regression tests. Boost.Test or lightweight_test may be used to create test cases and control output as optional practices.
-
HeadersThis is an example of a manual description of Headers
Header files are the place where a library comes into contact with user code and other libraries. To co-exist peacefully and productively, headers must be "good neighbors".
Boost Standards
Here are the standards for boost headers. Many of these are also reasonable guidelines for general use.
Header filenames should have a .hpp (lowercase) extension.
Unless multiple inclusion is intended, wrap the header in #ifndef guards. Use a naming convention that minimizes the chance of clashes with macro names from other’s code. The Sample uses the Boost convention of all uppercase letters, with the header name prefixed by the namespace name, followed by the relative path, and suffixed with HPP, separated by underscores. -
Testing manual descriptionThis is an example of a manual description
-
-
BestGuidelines are presented for preparing Boost library contributions, emphasizing clarity, correctness, and ISO‑standard C++ over premature optimization. Recommended practices include beginning each source file with descriptive comments, copyright information, and a reference to the library’s web page, while adhering to fixed‑width fonts, spaces instead of tabs, and an 80‑character line limit. Naming conventions are prescribed to follow the C++ Standard Library style: lowercase identifiers with underscores, uppercase macro names prefixed by BOOST_, and meaningful, singular library names that are reflected in directory structures and namespaces. File and directory names must use only portable ASCII characters, avoid periods in directories, and respect length limits imposed by legacy file systems.
-
TestingLorem Ipsum is described as dummy text that has been employed by the printing and typesetting industry since the 1960s after being derived from a scrambled 1914 Cicero translation. It is noted for providing a near‑normal distribution of letters, allowing designers to evaluate page layout without the distraction of meaningful content. The passage’s origins are traced to sections 1.10.32 and 1.10.33 of Cicero’s “de Finibus Bonorum et Malorum,” a work from 45 BC identified through scholarly investigation. Various versions have emerged over time, some altered by humor or randomization, prompting the development of generators that combine a dictionary of Latin words with model sentence structures to avoid repetition and unintended messages. The standard Lorem Ipsum paragraph commonly used since 1966 is reproduced alongside the original Latin sections and their 1914 English translations.
-
Contributors Frequently Asked QuestionsGuidance for new Boost contributors on common questions is provided. Library creation is described as originating from individual initiatives rather than external demand, with community review enforcing quality. License application procedures are outlined, specifying comment templates, copyright handling, and the openness of the Boost Software License. Recommended development environments are listed, including lightweight editors (Vim, Emacs) and full IDEs (CLion, Qt Creator, Visual Studio, VS Code). Documentation structure is suggested, covering introduction, requirements, acknowledgements, and detailed function entries with syntax, parameters, return values, and examples.
-
Regression test 2Local regression tests for Boost are documented, offering guidance for execution on a developer’s machine via a Python command‑line tool. Running a library’s tests is performed by invoking the `b2` utility from the `/libs/<library>/test` directory, optionally specifying a single test name from the corresponding Jamfile.v2, while all libraries’ tests are triggered from the `/status` directory; Boost.Build’s own tests are started with `python test_all.py` in the `/tools/build/v2/test` folder. The `run.py` script automates full regression testing and result reporting, requiring Python 2.3‑2.9, a recent Git client, and at least five gigabytes of disk space per compiler. Required options for the script include `--runner=` to identify the result set, `--toolsets=` to select compilers, and `--tag=` to choose the repository tag (typically develop or master).
Create an account
Advance your career, learn from experts, and help shape the future of Boost and C++.