This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Some of them absolutely have to go: complex.h, for instance, has to go, as it is now specified as a TR1 include.
There has been some commentary about removing the backwards headers, or a subset of the headers, or just the <complex.h> header in bugzilla.
Here's a relevant bugzilla entry for complex.h: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13071
There was also some conversation about solving this issue. (I cannot find the pinters to it, sorry.)
At the time, Gaby and Paolo stood on opposite sides of the issue. Gaby suggested removing complex.h, and Paolo suggested removing all the include files in include/backward. Stalemate.
From my vantage point today, I side with Paolo's position. I think that C++0x means, by ISO rules, that items marked as deprecated includes in C++98 should be removed from the libstdc++ sources. Formally, deprecated is defined as "Normative for the current edition of the Standard, but not guaranteed to be part of the Standard in future revisions." Thus, all files in "includes/backward" get the chop. All files in testsuite/backward get the chop. All docs that reference these bits get the chop. Hiiiiii-ya!!!!
People (poor souls?) who'd like to use these facilities can always download older releases.
People who are still using these headers have been warned for the last five years that they are going away. This can hardly be a surprise.
There is one small nit, in that libstdc++.so.6 exports some strstream symbols. As such, they should be preserved if we are to keep ABI compatibility with the C++0x compiler. This condition can be accomodated by hacking abi.cc to deal with this, and strstream.h can still be removed from the installed includes.
The specifications for TR1 include specifications for what <tgmath.h> and <complex.h> are. In particular, they seem to specify content that is much different than the "C" or "C99" includes.
a) resurrect the "C" compatibility includes. Ie, c vs. c_std includes. This is what I did, but just for the problematic includes.
b) fixup the "C" includes, which was attempted, but then discared. Numerous times.
#include <debug/vector> #include <vector>
int main()
{
std::vector<int> v;
__gnu_debug::vector<int> v2;
return 0;
}#include <tr1/array> #include <array>
int main()
{
std::array<int, 5> v;
std::tr1::array<int, 5> v2;
return 0;
}without -std=c++0x, std::array falls down. with -std=c++0x, std::tr1 falls down.
Attachment:
p.20070221-1.bz2
Description: application/bzip
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |