v3 flag enabled
Log In
Log In

JS Disabled blog

Library Requirements This section describes the requirements and guidelines for the content of a library submitted to Boost.

Boost developers constitute a wide array of people throughout much of the world. Over the years much work has gone into the quantity and quality of the C++ libraries and tools that make up Boost. There are many ways to become part of the Boost developer community, all starting with getting involved in the development discussion. But if you are looking for an easier place to start than developing a library, consider volunteering as a tester.

As a first step to developing a library, read the Requirements Overview for Boost.

Requirements Overview To avoid a proposed library being rejected, it must meet these requirements:

The license must meet the License Requirements. Restricted licenses like the GPL and LGPL are not acceptable.

The Ownership (copyright) must be clear.

The library should be useful to a general audience.

The library must meet the Portability Requirements.

The library should preferably meet the Organization Requirements. But is only required to meet them after acceptance.

The library must come reasonably close to meeting the Design Best Practices.

The library must be well documented, refer to Documentation Guidelines.

The author must be willing to participate in discussions on the mailing list, and to refine the library accordingly.

TIP There’s no requirement that an author read the mailing list for a time before making a submission. It has been noted, however, that submissions which begin "I just started to read this mailing list …​" seem to fail, often embarrassingly.

Ownership Before proceeding, are you sure you own the library you are thinking of submitting? In the book How to Copyright Software" by MJ Salone, Nolo Press, 1990 says:

"Doing work on your own time that is very similar to programming you do for your employer on company time can raise nasty legal problems. In this situation, it’s best to get a written release from your employer in advance."

Place a copyright notice in all the important files you submit. Boost won’t accept libraries without clear copyright information.

Next Post

  • Post for Waigtal
    #Accumulators
    Header files act as the interface between a library and user code and must be well‑behaved. Boost guidelines prescribe that header filenames use a lowercase .hpp extension. Include guards are required unless multiple inclusion is intended, using uppercase namespace‑prefixed identifiers separated by underscores. All declarations are placed inside a namespace, preferably boost, to avoid global namespace pollution. Headers must compile as standalone units and be placed in sub‑directories added to the include path, avoiding relative includes. Member ordering is advised as public, protected, then private, and boost/config.hpp is included when compiler or platform configuration is required. Examples illustrate nested guard naming for libraries such as Boost.Beast, showing progressive prefixes for subfolders and implementations.
  • Post for Waigtal
    #Accumulators
    Header files act as the interface between a library and user code and must be well‑behaved. Boost guidelines prescribe that header filenames use a lowercase .hpp extension. Include guards are required unless multiple inclusion is intended, using uppercase namespace‑prefixed identifiers separated by underscores. All declarations are placed inside a namespace, preferably boost, to avoid global namespace pollution. Headers must compile as standalone units and be placed in sub‑directories added to the include path, avoiding relative includes. Member ordering is advised as public, protected, then private, and boost/config.hpp is included when compiler or platform configuration is required. Examples illustrate nested guard naming for libraries such as Boost.Beast, showing progressive prefixes for subfolders and implementations.
  • Learn C++
    #Assign
    It is a beginner‑level, self‑paced Codecademy course introducing the C++ programming language and its applications in software, games, databases, and scientific computing. The curriculum is comprised of 13 lessons, 14 hands‑on projects, and eight quizzes, requiring roughly eleven hours to complete and covering core programming concepts, pointers, memory management, and project development. Practical assignments are provided, such as creating ASCII block letters, solving quadratic equations, and converting currencies. Completion yields a certificate that may be displayed on professional profiles. Learner feedback highlights clear explanations, interactive exercises, and a well‑organized interface. Frequently asked questions supply background on C++’s evolution and its performance advantages.