+1 -Lari
On 2025/12/01 09:32:07 Yunze Xu wrote: > Hi all, > > Currently, the API of pulsar-client-cpp conforms to the C++11 > standard, which was approved 14 years ago [1]. C++11 is used mainly > because it's the highest standard supported by GCC 4.8 in CentOS 7, > which has already reached the EOL in June 2024. > > C++11 is a bit too old now: > - `std::optional` (from C++17) is not supported, it makes some APIs > ugly, e.g. using an empty `std::string` to represent the null semantic > - We have to pin the protobuf dependency to 3.21.12 because the higher > version protobuf libraries require at least C++14 > > Mainstream linux distros already have GCCs that support C++17 for > example, the manylinux2014 image for Python library build has GCC 10, > which even supports C++20. > > I proposed to upgrade to C++17 first to get benefits from improvements > on lambda expressions, std::optional, std::string_view for now. > > [1] https://en.cppreference.com/w/cpp/11.html > [2] https://github.com/protocolbuffers/protobuf/issues/12393 > > Thanks, > Yunze >
