Wyatt Hepler | f9fb90f | 2020-09-30 18:59:33 -0700 | [diff] [blame] | 1 | .. _module-pw_minimal_cpp_stdlib: |
Wyatt Hepler | 0412a7d | 2020-01-28 16:27:32 -0800 | [diff] [blame] | 2 | |
| 3 | --------------------- |
| 4 | pw_minimal_cpp_stdlib |
| 5 | --------------------- |
Armando Montanez | 0054a9b | 2020-03-13 13:06:24 -0700 | [diff] [blame] | 6 | The ``pw_minimal_cpp_stdlib`` module provides an extremely limited |
| 7 | implementation of the C++ Standard Library. This module falls far, far short of |
| 8 | providing a complete C++ Standard Library and should only be used in dire |
| 9 | situations where you happen to be compiling with C++17 but don't have a C++ |
| 10 | Standard Library available to you. |
Wyatt Hepler | 0412a7d | 2020-01-28 16:27:32 -0800 | [diff] [blame] | 11 | |
| 12 | The C++ Standard Library headers (e.g. ``<cstdint>`` and ``<type_traits>``) are |
| 13 | defined in ``public/``. These files are symlinks to their implementations in |
| 14 | ``public/internal/``. |
| 15 | |
| 16 | .. tip:: |
| 17 | |
| 18 | You can automatically recreate the symlinks in ``public/`` by executing the |
| 19 | following Bash code from ``pw_minimal_cpp_stdlib/public/``. |
| 20 | |
| 21 | .. code-block:: bash |
| 22 | |
| 23 | for f in $(ls internal/); do ln -s internal/$f ${f%.h}; done |
| 24 | |
Wyatt Hepler | d32daea | 2020-03-26 13:55:47 -0700 | [diff] [blame] | 25 | Requirements |
| 26 | ============ |
Wyatt Hepler | 0412a7d | 2020-01-28 16:27:32 -0800 | [diff] [blame] | 27 | - C++17 |
| 28 | - gcc or clang |
| 29 | - The C Standard Library |