Replies: 17 comments 9 replies
-
Mainstream compilers (gcc, clang, msvc) have almost complete support of C++17 (Some are missing one or two item though). Also Vote for C++17 🙋 |
Beta Was this translation helpful? Give feedback.
-
My only concern about C++17 is some low-cost embedded systems. GCC7 is needed for C++17, and GCC7 was released in 2017. GCC 7.4 is in Ubuntu 18.04. I think very few systems still use an earlier version of Ubuntu 18.04. I think C++17 is possible for OpenCV 5. |
Beta Was this translation helpful? Give feedback.
-
Vote for C++17! |
Beta Was this translation helpful? Give feedback.
-
I'm involved in a number of software developments that are intended to be embedded in computers on board satellites and for which c++14 or later standards are not authorised. I therefore vote in favour of maintaining a minimum c++11 standard. |
Beta Was this translation helpful? Give feedback.
-
Where c++20? |
Beta Was this translation helpful? Give feedback.
-
@vpisarev What's opencv team choice? |
Beta Was this translation helpful? Give feedback.
-
Vote C++17. |
Beta Was this translation helpful? Give feedback.
-
❤️ |
Beta Was this translation helpful? Give feedback.
-
C++20 with modules. Yeah this is a daydream. And please also contribute to DCV., written in a sane language dlang. https://github.com/libmir/dcv |
Beta Was this translation helpful? Give feedback.
-
IMO, developers who are stuck with a very old compiler version can continue to use OpenCV 4. New library versions should target new compiler versions. C++17 is already a conservative choice. |
Beta Was this translation helpful? Give feedback.
-
Regarding C++17, we can use std::any for any-value map as a replacement for cv::dnn::Dict or FileNode |
Beta Was this translation helpful? Give feedback.
-
If I had to choose between the two, I'd pick C++17. However... It may be an unpopular opinion but I think OpenCV's documentation isn't ready for an upgrade past C++11. At the moment, there are so many modules with varying levels of documentation. I believe that without an improvement to the contribution guidelines, upgrading the C++ Standard will cause what @mshabunin is talking about. There is very little documentation of developers to figure out why their compilations may be failing (like in older embedded systems, as @fspindle points out), or what functions developers agree to (not) use. |
Beta Was this translation helpful? Give feedback.
-
Vote for C++17 |
Beta Was this translation helpful? Give feedback.
-
A small comment on future decisions: every 3-7 years enough time has passed for the new relevant version of C++ to have matured with various compilers. Furthermore, each version is with increasingly with interesting or critical features, but not very backwards compatible. We should just pre-emptively decide to release a new major version of opencv with each C++ revision, fully embracing the changes within. So OpenCV 5 can be C++17 based, and should fully leverage whichever nice new api features it can. And when C++20 is deemed stable enough with compilers, we should release an OpenCV 6, that fully embraces modules (which changes everything about compilation times) (and this would be a major change). |
Beta Was this translation helpful? Give feedback.
-
May be c++11? c++17 is better than c++14; I can't vote c++14; But actually, There are so many device on board do not support c++17. |
Beta Was this translation helpful? Give feedback.
-
By default I voted for C++17 but why not C++20 that is now very well supported? |
Beta Was this translation helpful? Give feedback.
-
Please check preliminary PR establishing C++17 baseline: #26287. We will be glad to hear your comments and concerns. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
In OpenCV 4.x the minimum required standard is C++ 11. For OpenCV 5.0 we are going to raise the bar. Note that in the subsequent 5.x releases we could raise it up again, but not down. For your reference, please, check C++ standard compliance status in different mainstream compilers (scroll to the bottom to see C++14 and C++17 support status): https://en.cppreference.com/w/cpp/compiler_support
360 votes ·
Beta Was this translation helpful? Give feedback.
All reactions