Testing manual description
Design Best Practices
Use these guidelines as recommendations based on past author’s experiences of preparing content for a library submission.
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_overview">Overview
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_source_files">Source Files
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_naming">Naming
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_testing_and_error_handling">Testing and Error Handling
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#redirection">Redirection
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_rationale">Rationale
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_good_and_less_good_examples_of_api_design">Good and Less-Good Examples of API Design
-
https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_see_also">See Also
Overview
When designing a new library:
-
Aim first for clarity and correctness; optimization should be only a secondary concern in most Boost libraries.
-
Aim for ISO Standard C++. Than means making effective use of the standard features of the language, and avoiding non-standard compiler extensions. It also means using the https://en.cppreference.com/w/cpp/standard_library">Standard Library where applicable.
-
Headers should be good neighbors. See https://www.boost.org/doc/contributor-guide/design-guide/headers.html">Headers and https://www.boost.org/doc/contributor-guide/design-guide/design-best-practices.html#_naming_consistency">Naming Consistency.
-
Follow quality programming practices. Recommended texts include Effective C++ 2nd Edition and More Effective C++, both by Scott Meyers and published by Addison Wesley.
-
Use the C++ Standard Library or other Boost libraries, but only when the benefits outweigh the costs. Except in special cases, do not use libraries other than the C++ Standard Library or Boost.
-
Read https://www.boost.org/doc/user-guide/implementation-variations.html">Implementation Variation Techniques to see how to supply performance, platform, or other implementation variations.
-
Read the guidelines for https://www.boost.org/doc/contributor-guide/design-guide/separate-compilation.html">Separate Compilation, to see how to ensure that compiled link libraries meet user expectations.