Repository navigation
Conversation
Process these two keywords in the same manner expand_macro handles object-like macros that expand to the name of a defined function-style macro, i.e. defer processing until the scanner can catch up. Also, add appropriate unit tests. No tests are provided for function-like expansion to defined() because it seems not to work in gcc and Clang, and is also UB.
Doing bitwise operations on enums of differing types was deprecated in C++20 and forbidden in C++23; we are starting to encounter this in CI
Replace hacked `ci.yml` with a small configuration and a pointer to the reusable flow maintained by Boost. Differences from the default file: * b2_targets set to samples, test, tool and the library overall * depinst instructed to search samples and tool subdirectories for dependencies * MSVC jobs enabled (we will stop using Appveyor) * windows+mingw/gcc disabled (due to a challenging filename in a test), along with early Clang versions * Removed Appveyor build badges
Before this patch some language standards would set `__cplusplus` properly and some not. Now all currently available C++ language standards set `__cplusplus` correctly.
* Change variant setting for tests from debug to release * Select the "release" variant for other targets (default is both debug and release) This will speed CI and work around some PDB errors observed in Windows/MSVC builds
* Enable setting language standard C++14 We require an explicit C++14 mode so we can set `__cplusplus` correctly during preprocessing of C++14 projects. Currently this switch is not used for other C++14 features, such as digit separators. * Fix which tokens are use for lexer testing - literal suffixes for `size_t` are a C++23 feature - The `module` keyword is a C++20 feature * Use C++14 flag when testing digit separators - As noted above, however, the flag is not tested.
It's only used by the samples. Boostdep scans the sources and possibly tests and will miss this if not explicitely asked to include samples which may not be generally desired and leads to uneccessary failures.
* Enable setting language standard C++26 boost.wave is not yet able to preprocess C++26 specific features like `#embed`. However, using the C++26 language mode allows preprocessing code which requires `__cplusplus` to be set according to C++26. Also, adding the boilerplate now makes it easier add later support for the C++26 specific language features. * Fix logic bug in macromap for C++23 While adding C++26 support we realized cpp_macromap has an existing bug in C++23 mode. When using C++23 `BOOST_WAVE_SUPPORT_CPP2A` would be true, but `need_cpp2a()` is false (also `need_cpp26` would be false now that we added it). That means, we would not enter branches we are supposed to go into. Adding an additional `need_cpp2b()` into the ro chains fixes this bug.
Collaborator
Author
|
Looking good. One CI failure associated with code coverage setup, not material. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All changes to develop since 1.92
Still missing for release: ChangeLog update