Add constexpr support for dynamic allocated cpp_int #654
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.
Added constexpr support for dynamic allocated
cpp_int
s as long as compiler implements features__cpp_constexpr_dynamic_alloc
and__cpp_lib_constexpr_dynamic_alloc
from P0784R7.If those features are disabled, it behaves as the current implementation. Note that those features require C++20, so they will only work when passing
-std=c++2a
(or beyond) flag during compilation through a supported compiler (tested here ong++-11
+ andclang++-16
+ using libstdc++ withg++-10
+ toolset on ubuntu noble).It might work on
g++-10
, but for some reason the b2 check forif constexpr
keep returning "no" for it.Also fixed constexpr construction from strings and added some tests for construction/operations on dynamic allocated
cpp_int
s.Had to make small changes to existing code to tackle some warnings given when compiled without the feature's support (such as uninitialized variables not being supported in constexpr methods before C++20).