Update Envoy toolchain to C++20
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
Moving to C++20 required update of the protobuf to v22.x to pull in proto complier changes that handle C++20 reserved keywords correctly. protobuf v22 also underwent a massive refactor, which impacted a number of dependencies.
Impacted Envoy dependencies are failing to build with the protobuf v22.x because they used the internal guts (details) of previous protobuf.
List of affected dependencies:
- [x] PGV and star validate
- [x] gRPC-JSON transcoder (in progress)
- [x] CEL (in progress)
C++20 mode is now enabled for the compile-time-options build. Moving forward an enabling it for the main build requires the following changes:
- [ ] Update GCC to version 11 for C++20 support comparable to clang
- [ ] Update Windows Visual Studio to 16.10 at least (currently at 16.9)
- [ ] May need to ditch clang with stdlib as the stdlib version bundled with clang does not support C++20 (at least in clang-14). Only clang with libc++ will be supported.
Contributor guide
Assessment
This issue has not been assessed yet.