Skip to content
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

Require C++11? #32

Open
rrthomas opened this issue Apr 21, 2021 · 3 comments
Open

Require C++11? #32

rrthomas opened this issue Apr 21, 2021 · 3 comments

Comments

@rrthomas
Copy link
Contributor

C++11 support seems to be pretty much ubiquitous in deployed systems now; would it be reasonable to require it? I would be happy to provide a patch.

@wbraswell
Copy link
Contributor

I reluctantly added C++11 support to my JPCRE2-utilizing codebase (https://github.com/wbraswell/rperl) a few years ago, but only after extensive researching & development which proved the necessity of doing so. In other words, I only added C++11 support because I had no choice.

The reason for this is simple but critical: backward compatibility. My code will no longer work on systems which do NOT support C++11, whether it is because the operating system is outdated or perhaps the administrator purposefully configured the OS without C++11 for whatever unknown reasons.

If JPCRE2 does not explicitly require C++11 features to work properly, then I believe the answer is no, we should NOT require C++11. It will not give us any benefit but will inevitably cause JPCRE2 to stop working on some non-C++11 systems.

@rrthomas
Copy link
Contributor Author

@wbraswell Fine, but for how long? For example, the GNU Coding Standards dropped material specific to K&R C only a few years ago, which seems excessive backwards compatibility. I have assumed C99 to be a reasonable default in my projects for 5 years; that too seems rather conservative. No currently-supported GNU/Linux distro that I'm aware of lacks C++11 support, and I believe the same is true of macOS; I'm not sure about Windows. I'm aware there are other OSes, too!

Looking at https://en.cppreference.com/w/cpp/compiler_support one can see that more-or-less full C++11 support requires GCC 5, Clang 3.8, and MSVC 2015.

@wbraswell
Copy link
Contributor

Backward compatibility should be maintained for as long as possible.
Just because some (or most) people want to upgrade, doesn't mean everyone wants to (or can) upgrade.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants