Hi all, I would like to check if we should raise the minimum C++ level of lib/cpp and of the generated C++ code from C++11 to C++17, Details are in THRIFT-6364: https://issues.apache.org/jira/browse/THRIFT-6364
Why now: - Every toolchain we build with supports C++17 fully: GCC 11 and 13 in the Ubuntu images, Visual Studio 2022, current Apple Clang. So does GCC 8, the system compiler of RHEL 8. - It lets lib/cpp replace most of its remaining Boost uses (tokenizer, string algorithms, shared_array, numeric_cast, scope_exit, uuid) with the standard library, which gets us close to what the README has promised since 0.13.0: no Boost needed to build the library. TMultiplexedProcessor.h, a public header, still pulls in boost/tokenizer.hpp today. What it costs: Since generated code includes our headers, users would have to build their code as C++17 or later. Anyone still using C++11 or C++14 would need to stay on an older version. I am not proposing C++20: it would drop GCC 8 and 9 for little gain in a serialization library. The change itself is small (the CMake default, configure.ac, the PHP and Python extension flags, and the docs). Master already builds unchanged with CMAKE_CXX_STANDARD=17 and passes the C++ test suite on GCC 11.4 (Ubuntu 22.04) and Apple Clang. Each Boost replacement would follow as its own ticket. Does anyone depend on building Thrift C++ as C++11 or C++14, or know of a platform we would lose? Thanks, Sylwester
