-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Here's what we use, and what i would propose to do with them:
- math
- factorial
- could use
std::tgamma, but it would be nice to know that it's exact for small values - implement ourselves as in boost -- have a table for small values (i.e. where there is no floating point round-off, up to 22), then fall back to std::tgamma (which is really unnecessary)
- could use
- legendre
- in c++17, could implement ourselves (or as a table)
- constants (just pi)
- std::numbers in c++20, implement ourselves
- factorial
- algorithm/clamp - in c++17, implement ourselves
- make_unique - update to c++14
- optional - in c++17
- variant - in c++17
Optional and variant are the tricky ones. Some options for those:
- add a wrapper that makes it work with either boost or c++17
- the behavior is a bit different so this may be tricky. This would be a pain to test, and we'd want to remove it eventually, which would be annoying again. It would also probably make the public interface unclear.
- update to c++17
- it's 2023, and the features we need have been implemented for a long time in most compilers https://en.cppreference.com/w/cpp/compiler_support/17
- quite a bit of code would be simpler, as the API for std::optional/variant is better than boost
- include our own implementations
- similar issues to the first option. IME this is a pain, as implementations of these are quite subtle, and nobody is interested in maintaining them now that they have been standardised
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request