Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> std::cout << i << ": " << v << std::endl;

C++ needs to abandon iostreams. Didn't the C++ community acknowledge that it was a bad idea? In the early days of D, people did want to do a version of it for D, but I objected and currently nobody wants it.

 help




Thanks. Looks like it finally made C++23!

fmt:print from fmtlib has been around for at least a decade, though having it be in the spec by default now is nice.

Even in c++20, you could use format() to do most of what you'd want from it.


Some folks don't like iostreams, I keep using them, since Turbo C++ 1.0 for MS-DOS.

Although I would probably use std::print in more modern compilers.

D needs to work into its marketing, all key features that made it relevant back in 2011 with Andrei's book have now been copied even if badly, across all mainstream languages.


> Some folks don't like iostreams

I thought it was ugly in 1987, and it hasn't improved with age. Then < > for templates made it worse.

Then there's formatted I/O:

    void IOS_precision()
    {
    cout << "\n--------------------------\n";
    cout << "Implementing ios::precision\n\n";
    cout << "Implementing ios::width";
    cout.setf(ios::fixed, ios::floatfield);
    cout.precision(2);
    cout<<3.1422;
    cout << "\n--------------------------\n";
    }
and I don't know if the problem with multithreading was resolved or not.

> copied even if badly

Any program can be written in any language. But why suffer?


That is always given as an example of how bad it is, yet I seldom have used any kind of such formatting since 1993.

iostreams hardly played a role in all C++ GUI frameworks and for object serialisation, precision flags were seldom used.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: