Details
-
Improvement
-
Resolution: Unresolved
-
Trivial
-
None
-
None
-
None
Description
This issue collects all possible candidates and their pros and cons regarding their usability in ReactOS.
Everything is WIP!
Clang's libc++
License:
- According to the website: All of the code in libc++ is dual licensed under the MIT license and the UIUC License (a BSD-like license).
- According to the source files: Apache-2.0 WITH LLVM-exception (https://llvm.org/LICENSE.txt)
Pros
- Compiles with GCC and Clang (on the supported platforms).
- Chromium for Windows switched to libc++ (Issue 801780: Switch to libc++ on Windows)
Cons
- No official commitment to Windows (only for Mac OS X, FreeBSD and Linux). But (some?) Windows support is implemented.
- According to the Website C++17 implementation is not yet complete.
- Uses #include_next, which MSVC not supports.
- Workaround: Replace #include_next<stdio.h> with something like #include <../crt/stdio.h>
MSVC's C++ Standard Library
License: Apache-2.0 WITH LLVM-exception
Pros
- Full Windows and MSVC support
- Clang 10+ support
- Supported standards 11, 14, 17 and 20 is WIP
Cons
- Depends on VCRuntime and Universal CRT (see Block Diagram), which ReactOS is currently lacking
- Requires MSVC 19.26 (Visual Studio 2019 16.6 Preview 2) or newer (Require MSVC 19.26 and Clang 10 in the STL)