Improved nav in guide FAQs (#340)

This commit is contained in:
Peter Turcan
2024-09-30 08:48:11 -07:00
committed by GitHub
parent 965f1c4506
commit a7535e6cb4
2 changed files with 47 additions and 0 deletions

View File

@@ -11,6 +11,18 @@ Official repository: https://github.com/boostorg/website-v2-docs
This section contains answers to the common questions that new contributors to Boost often have.
== Topics
[square]
* <<Adding New Libraries>>
* <<Boost Software License>>
* <<Development Environments>>
* <<Existing Boost Libraries>>
* <<Modular Boost>>
* <<Post-Release Engagement>>
* <<Security>>
* <<Testing>>
== Adding New Libraries
. *When considering developing a library for Boost, what is the right balance between ambitious functionality and limited functionality?*
@@ -19,6 +31,7 @@ The keys to a successful development of a new library are to identify core funct
+
In addition to this, consider future extensibility, performance, portability, current trends, and always remember you can seek community advice and feedback through the Boost mailing lists.
[[boostsoftwarelicense]]
== Boost Software License
@@ -92,6 +105,7 @@ Yes, there are no restrictions on the use of the license itself.
+
Yes. The https://opensource.org/[Open Source Initiative] certified the https://opensource.org/license/bsl-1-0[Boost Software License 1.0 in early 2008].
== Development Environments
. *Many developers opt for lightweight integrated developer environments (IDEs), rather than the full-fledged IDE. What lightweight IDEs are popular for pass:[C++] development?*
@@ -108,6 +122,7 @@ https://atom-editor.cc/[Atom] is an open-source text editor developed by GitHub.
+
There are many other tools, Microsoft's https://visualstudio.microsoft.com/[Visual Studio] provides a full IDE and is well respected as a professional development environment, and https://code.visualstudio.com/Download[Visual Studio Code] is a lighter weight but versatile code editor that can be extended and customized with various extensions.
== Existing Boost Libraries
. *What are the biggest pain points that developers are running into, that are not addressed by current Boost libraries?*
@@ -140,6 +155,7 @@ The many notable examples include:
+
The useful utilities such as boost:any[], boost:variant[], and boost:optional[] offer relatively simple functionality. Another simpler library is boost:bimap[] which provides a container for maintaining one-to-one mappings between keys and values. While bidirectional maps are a useful data structure, the functionality provided is relatively straightforward and focused on this specific use case.
== Modular Boost
. *What is meant by "Modular Boost"?*
@@ -166,6 +182,7 @@ The structure is still required for things like testing and documentation buildi
+
The numeric libraries have been divided into four packages: libboost-numeric-conversion/, libboost-numeric-interval/, libboost-numeric-odeint/, libboost-numeric-ublas/.
== Post-Release Engagement
. *Through what channels do Boost library authors typically receive the most feedback?*
@@ -275,6 +292,7 @@ Positive feedback and praise from developers not only encourages the library aut
+
Financial contributions or sponsorships as a token of appreciation are rare!
[[security]]
== Security
@@ -400,6 +418,7 @@ There are several books that cover threat modeling principles, techniques, and a
+
* _Software Security Engineering: A Guide for Project Managers_ by Julia H. Allen, Sean Barnum, and Robert J. Ellison. This book provides a comprehensive overview of software security engineering principles, practices, and processes. It covers a wide range of topics related to software security, including threat modeling, security requirements analysis, security architecture, secure coding practices, and security testing.
== Testing
. *What Boost libraries are useful examples of how to add Continuous Integration (CI) into the library testing process?*
@@ -416,6 +435,7 @@ By studying how these libraries implement CI into their testing processes, newco
+
Refer also to xref:testing/continuous-integration.adoc[].
== See Also
* xref:best-practices.adoc[]

View File

@@ -11,6 +11,22 @@ Official repository: https://github.com/boostorg/website-v2-docs
This section contains answers to the common questions that new developers to Boost often have.
== Topics
[square]
* <<Compatibility>>
* <<Debugging>>
* <<ISO C++ Committee Meetings>>
* <<Libraries>>
* <<Licensing>>
* <<Metaprogramming>>
* <<Modular Boost>>
* <<Other Languages>>
* <<Releases>>
* <<Smart Pointers>>
* <<Standard Library>>
* <<Templates>>
== Compatibility
. *Can I use Boost with my existing pass:[C++] project?*
@@ -42,6 +58,7 @@ Boost libraries are generally compatible with most Linux distributions, provided
+
While Boost strives to ensure compatibility with a wide range of compilers and systems, not every library may work perfectly with every system or compiler due to the inherent complexities of software. The most reliable source of information is the specific Boost library's documentation.
== Debugging
. *What support does Boost provide for debugging and testing?*
@@ -91,6 +108,7 @@ Boost provides the assertion `boost::assert`. Best practices when using this are
* _Handle Log Rotation_: If your application produces a lot of log output, consider setting up log rotation, which is supported. This ensures that your log files don't grow indefinitely.
[[isocommitteemeetings]]
== ISO C++ Committee Meetings
@@ -156,6 +174,7 @@ A mailing is the set of papers prepared before and after each meeting, or betwee
+
The committee's mailing lists are called "reflectors". There are a number of them; "all", "core", "lib", and "ext" are the main ones. As a courtesy, Boost technical experts can be added to committee reflectors at the request of a committee member.
== Libraries
. *What are smart pointers in Boost?*
@@ -201,12 +220,14 @@ Boost libraries offer a wide range of algorithmic and data structure support. He
+
Refer to xref:task-simulation.adoc[].
== Licensing
. *What is the license for Boost libraries?*
+
The Boost libraries are licensed under the Boost Software License, a permissive free software license that allows you to use, modify, and distribute the software under minimal restrictions. Refer to xref:bsl.adoc[].
== Metaprogramming
. *What is metaprogramming in the context of Boost pass:[C++]?*
@@ -266,6 +287,7 @@ Other challenges include lack of runtime flexibility, as decisions are made at c
NOTE: boost:mp11[] supersedes the earlier boost:mpl[] and boost:preprocessor[] libraries.
== Modular Boost
. *What is meant by "Modular Boost"?*
@@ -303,6 +325,7 @@ Correct - backwards-compatibility should be maintained.
+
An exact timeline requires issues to be resolved, though later in 2024 is the current plan-of-record.
== Other Languages
. *Have developers written applications in languages such as Python that have successfully used the Boost libraries?*
@@ -580,6 +603,7 @@ Future technological shifts, such as advances in quantum computing or entirely n
+
Python is often the top recommendation due to its versatility, simplicity, and wide application in growing fields like artificial intelligence (AI), machine learning (ML), rapid prototyping, and data science. And boost:python[] is there to help you integrate with the Boost libraries. Rust is another strong contender, especially if you are interested in systems programming and are looking for reliability and security. If you see the future as more cloud computing, then Go makes a strong case for itself. And let's not forget that so much computing is now web based, so JavaScript deserves a mention here too. All of these languages offer valuable resources that complement pass:[C++] and prepare you for an uncertain future.
== Releases
. *How do I download the latest libraries?*
@@ -695,6 +719,7 @@ void foo() {
}
----
== Standard Library
. *Where can I find the most complete documentation on the C++ Standard Library?*
@@ -725,6 +750,7 @@ Yes, currently the functionality of two Boost libraries are being considered:
*C++ 2026* is slated as the next full release, for details refer to https://isocpp.org/std/status[Current Status].
== Templates
. *What are pass:[C++] templates?*
@@ -765,6 +791,7 @@ void sort(T* array, int size) {
+
This function can now be used to sort arrays of any type (that supports the `<` and `>` operators), not just a specific type.
== See Also
* xref:contributor-guide:ROOT:contributors-faq.adoc[Contributor Guide FAQ]