4 ms·
This is from C++23, right? I wonder how available this is within compilers and how many shops plan on moving to this version of the standard and how long that w
by pokler 3y ago
This is from C++23, right? I wonder how available this is within compilers and how many shops plan on moving to this version of the standard and how long that will take.
I imagine targeting C++17 or 20 for 'modern' would be practical enough considering thats what you are most likely to run into in a professional setting.
- steveklabnik 3y ago> This is from C++23, right? std::println is, yes. > I wonder how available this is within compilers https://en.cppreference.com/w/cpp/compiler_support https://en.cppreference.com/w/cpp/compiler_support says clang, gcc, and msvc all support it, though I don't know how recent those versions are off the top of my head. In my understanding, with this specific feature, if you want a polyfill for older compilers, or to use some more cutting-edge features that haven't been standardized yet, https://github.com/fmtlib/fmt https://github.com/fmtlib/fmt is available to you.
- wiseowise 3y ago> says clang, gcc, and msvc all support it, though I don't know how recent those versions are off the top of my head Where did you find it? Search by println yields no results.
- steveklabnik 3y agoFormatted output library <print>
- wiseowise 3y agoThanks!
- scatters 3y ago> I don't know how recent those versions are gcc 14 has not yet been released; going by past years, 14.1 should come out around the start of May (2024). clang 17 was released September (2023); note that you need to use libc++ (stlib=libc++), not libstdc++. VS 2022 17.7 has been out since August.
- steveklabnik 3y agoThank you!
- materielle 3y agoHonestly C++ is in a real pickle. So iostreams were a mistake, they shouldn’t have happened in the first place. And given that they happened, std::format should have been added 20 years ago, or at least in C++11. The problem is that many professional shops never used iostreams, and instead hand rolled their own format library. Now, they don’t really care about std::format, and probably will never use it, because it would involve migrating off of their hand rolled solution which is working great. On the other hand, for small shops and hobbyists that don’t have the resources to reimplement std, this is a huge quality of life improvement. Meanwhile, more modern languages like Rust are encroaching. And this is all just about how to print “Hello World!”. This situation is really emblematic of the challenges faced by the C++ committee. It is really impossible to please everyone, or even a majority, since the community is so fractured.
- vitaut 3y agoThis is not about printing hello world but about all formatted I/O which is a significant chunk of the library. To be fair formatted I/O is pretty broken in C as well but for completely different reasons.