[iostreams] When plan to move to C++20
ITNOA I have question about the plan to migrate code base from C++03 to C++20 for iostreams library I think iostreams library have very more clean if using modern C++ features, such as Concept Did you have any plan about that? thanks
On Thu, Feb 9, 2023 at 7:35 AM Seyyed Soroosh Hosseinalipour via
Boost-users
I think iostreams library have very more clean if using modern C++ features, such as Concept
Functionally speaking, what would change for users? Would their programs behave differently? Would the API change? Thanks
Seyyed Soroosh Hosseinalipour via Boost-users
ITNOA
I have question about the plan to migrate code base from C++03 to C++20 for iostreams library
I think iostreams library have very more clean if using modern C++ features, such as Concept
Did you have any plan about that?
thanks
Lots of people use boost because they cannot use C++20 or even C++17. For those users, boost provides C++11 or C++14 portable equivalent of new std libs (boost::optional, boost::variant, boost::filesystem, etc.) If boost required C++20, many users would not be able to use boost anymore. Boost should be not require such a recent C++ standard. C++11 or C++14 are probably the best minimal standard for Boost IMO at the moment. Furthermore, looking at https://en.cppreference.com/w/cpp/20 (core language + STL), recent versions of gcc or msvc are in good shape with C++20 but clang is less complete. Dominique
Thanks for reply, but many of the libraries exist in boost, after some years candidate for adding to C++ ISO, so I think if we migrate iostream to latest standard of C++, we can candidate this library for ISO, because this library is very helpful, and general as standard wants.
________________________________
From: Boost-users
ITNOA
I have question about the plan to migrate code base from C++03 to C++20 for iostreams library
I think iostreams library have very more clean if using modern C++ features, such as Concept
Did you have any plan about that?
thanks
Lots of people use boost because they cannot use C++20 or even C++17. For those users, boost provides C++11 or C++14 portable equivalent of new std libs (boost::optional, boost::variant, boost::filesystem, etc.) If boost required C++20, many users would not be able to use boost anymore. Boost should be not require such a recent C++ standard. C++11 or C++14 are probably the best minimal standard for Boost IMO at the moment. Furthermore, looking at https://en.cppreference.com/w/cpp/20 (core language + STL), recent versions of gcc or msvc are in good shape with C++20 but clang is less complete. Dominique _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users
On Fri, Feb 10, 2023 at 12:03 PM Seyyed Soroosh Hosseinalipour via
Boost-users
Thanks for reply, but many of the libraries exist in boost, after some years candidate for adding to C++ ISO, so I think if we migrate iostream to latest standard of C++, we can candidate this library for ISO, because this library is very helpful, and general as standard wants.
I think it would be perfectly reasonable to update the library for C++20 --
it can be done in a way (aka version macros) backward compatible with older
c++ libraries.
That said, I don't think this design is where the standard is headed in
2023. Additions to I/O in c++20/23 have largely focused on format and
print from fmtlib. And for good reasons - performance, flexibility, lack of
ABI issues under many evolution scenarios, and unicode support. As simple
example, in c++23 you can say:
vector<int> v = { 1, 2, 3};
print( "{}", v ); //[1, 2, 3]
map
@vinnie.falco@gmail.com for example with replacing C++20/23 concept with stream abstract model in boost iostream, I think many compiles time checking and programming model changes. Or adding ranges filter into compatible form with boost iostream filter.
From: Jeff Garland
participants (4)
-
Dominique Pellé
-
Jeff Garland
-
Seyyed Soroosh Hosseinalipour
-
Vinnie Falco