Will the next C standard or any of the ones after that increase the libraries to support the things that C++ is like multi-threading or networking?
Printable View
Will the next C standard or any of the ones after that increase the libraries to support the things that C++ is like multi-threading or networking?
Doesn't C already support this through POSIX and BSD sockets?
I don't believe that C++ has standard support for multi-threading or networking, and I doubt that either of the new standards for C or C++ will encompass any networking functionality into the standard library. C and C++ is used for a huge number of systems on various architectures. Not all of the OS's that are used to run C or C++ on will have networking, and I don't think you will ever see more than about a few of the standards committee members agreeing on WHICH standard the networking functions would have.
Some support for multithreading is part of C++0X as far as I understand, and a new C standard may well follow those basic principles.
--
Mats
Good point. I don't know why that is. But I expect that compiler support is somewhat needed for solving some multithreading issues, whilst supporting networking is simply a case of library code, and there is much less need for compiler support for that. It becomes libraries. A standardization layer on top of networking could be feasible, but my expectation at least would be that it's too far away from the core functionality of the language as such.
Likewise, I don't expect to see a standardized GUI library any time soon - because it's far too hairy a mess to sort out who is right and who is wrong in their ideas in that idea, and the compiler doesn't need to know even a little bit.
Edit: Here is the proposals for Multithreading: http://www.open-std.org/jtc1/sc22/wg...006/n2094.html
Of course, that is a proposal, it may change or get removed from the standard.
The full C++0X standards submissions are here:
http://www.open-std.org/jtc1/sc22/wg...2006/n2122.htm
And there is no mention of networking on that entire page.
--
Mats
I suspect because it's a big issue and C++ is a modernization of C, after all. It was built to meet today's needs.
We're seeing a bigger leap towards more and more cores, but only in PCs, but also in embedded things.
So I'm guessing it's one of those "must have" things to keep C++ from falling down into history as an abandoned language.
Perhaps C will follow, as well.
As for GUI, I believe many want one, but it just takes too much time and money to put it together, which the committee doesn't have.
TR2 is a proposal that has a library to support networking. It is based off the asio boost networking library. Considering most of the TR1 is supposed to be in C++09, I would assume that the next standard will cover some if not most of TR2. It may not be soon but networking will happen sometime in the future.
>>How can that be? Just as not all systems support networking, not all systems support multithreading either.
Not all systems have a screen to support the iostream do they?
Yes I believe your right, but it's still not right for ALL systems. I would find an iostream for a gameboy pretty interesting.
Maybe not. Iostreams would be used by the system to read and write from the cartridge.
I would think the fstream would be used for that. The console has no permanent memory.
fstreams inherit from iostreams IIRC
http://www.cplusplus.com/reference/iostream/fstream/
They show fstream inheriting from iostream which in turn inherits from istream and ostream.
ifstream and ofstream inherit from istream and ostream individually.
Yes, that's also the way it's shown in Bjarne Stroustrup's book.
But when I look at the header files in VC++ 2008 they do this:
<ostream> includes <ios>
<istream> includes <ostream>
<fstream> includes <istream>
<iostream> includes <istream>
I wonder why they do it that way?
Because it is microsoft?
I should note that what I mentioned before is about the class and not the headers. What headers are included doesn't always indicated what the inheritance of the classes is.