-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Description
Current situation
Currently, PCL is compiled as C++17 by default. You can manually choose to use a newer C++ standard (C++20, etc), or you can choose to compile PCL as C++14. This requires that we keep all PCL code compatible with C++14, meaning that we either cannot use new language features introduced in C++17, or have to find workarounds and fallbacks for C++14. Overall, this requires more developer time, reduces code readability, may make errors more likely or at least harder to find, and may reduce opportunities to speed-up code.
Planned change
We are planning to drop compatibility with C++14, beginning with the next PCL release 1.16.0 (even earlier on the master branch). The default will still be C++17, and you can still choose to compile PCL with a newer C++ standard (C++20, etc). However, you will not be able to compile PCL as C++14 any more, and you will also not be able to compile your own project, that uses PCL, as C++14 any more. PCL contributors will then be allowed to use C++17 language features, and we will begin to remove all workarounds within PCL that made C++14 compatibility possible. Compilers that are not able to compile C++17 or newer will not work any more. Please see Wikipedia to find out which compilers support C++17: https://en.wikipedia.org/wiki/C%2B%2B17#Compiler_support . We expect that (almost?) all compilers used today are compatible.
Request for feedback
We know that this is a big change, especially because PCL puts an emphasis on stability and minimizing breaking changes, but we hope that you agree with us that the benefits outweigh the downsides. And we think that now, 8 years after the final version of the C++17 standard was published, this change is definitely not overhasty :)
If you are fine with the proposed change, please give this issue a "thumbs-up" (just as a rough opinion-poll). If you have concerns or see major problems with this change, please leave a comment (latest until end of January) so we can discuss further.