Bug #105707 | libmysqlclient C++20 compilation fails due to reserved 'requires' keyword | ||
---|---|---|---|
Submitted: | 25 Nov 2021 9:29 | Modified: | 2 Dec 2021 18:51 |
Reporter: | Puya D | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | 8.0.27 | OS: | CentOS (AlmaLinux 8.4) |
Assigned to: | CPU Architecture: | x86 |
[25 Nov 2021 9:29]
Puya D
[25 Nov 2021 9:44]
Puya D
Example patch for 8.0.27
Attachment: 0001-Rename-requires-to-requirements.patch (text/x-patch), 4.07 KiB.
[25 Nov 2021 10:30]
MySQL Verification Team
Hello Puya D, Thank you for the report and feedback. regards, Umesh
[30 Nov 2021 11:22]
Tor Didriksen
Posted by developer: MySQL source code requires -std=c++17. We will of course fix such errors/warnings once we upgrade to C++20
[30 Nov 2021 12:15]
Tor Didriksen
Posted by developer: Switching to C++20 requires more work, e.g. in 3rd party code extra/icu/icu-release-69-1/source/i18n/basictz.cpp:411:37: error: return type of ‘virtual UBool icu_69::TimeArrayTimeZoneRule::operator==(const icu_69::TimeZoneRule&) const’ is not ‘bool’ 411 | if (*(tzt0.getTo()) == *tar) From the documentation, it seems ICU 70 is ready for C++20.
[2 Dec 2021 18:51]
Stefan Hinz
Posted by developer: Fixed in 8.0.29. C++ variable name changed, no changelog entry required.