New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to C++17 #1378
Comments
We will not be able to do this until Ubuntu 16.04 is EOL I think. C++14 is covered by GCC5+ |
Ubuntu EOL is April 2021 according to: https://wiki.ubuntu.com/Releases |
Looks like GCC compiler version 7+ has all of the features. This is in 18.04+. So we have to wait until 16.04 is retired, although there are already some problems compiling on 16.04. |
@jamescowens Ubuntu 16.04 is EOL in 2.5 weeks(2021-04-30). Are we clear to bump by then or should we provide a little more time? |
We probably should make an announcement about our intentions on Reddit first and hold for a while. |
But I do not want to wait too long... |
This is more of a maybe-next-year kind of thing, but I propose we switch from C++11 to C++14 or even C++17 to be able to utilize new functionality and optimizations. Some things we would directly benefit from are:
string_view (C++17)
Allows you to view a part of a string instead of making a copy. Replaces many usages of substr which speeds up boincblock unpacking and
ExtractXML
.std::optional (C++17)
Replaces the need to manually carry an
is-initialized
flag, seeStructCPID
.std::filesystem (C++17)
Replaces
boost::filesystem
.Splicing for maps and sets
Cheaper data move between containers.
std::variant (C++17)
Replaces
boost::variant
.Relaxing constraints on constexpr functions (C++14)
Allows more flexibility in constexpr functions which gives the compiler a better chance at optimizing.
STL constexpr improvements (C++14)
Several functions in the STL have been made constexpr.
Parallel algorithms (C++14)
Allows for standard algorithm (find, sort etc) to utilize more cores.
The text was updated successfully, but these errors were encountered: