This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Where are std::sinf( float ) etc.
Howard Hinnant <hhinnant@apple.com> writes:
| On Dec 29, 2005, at 1:52 PM, Gabriel Dos Reis wrote:
|
| > Howard Hinnant <hhinnant@apple.com> writes:
| >
| > | We seem to have already merged (perhaps incompletely) some parts of
| > | this very part of TR1 as if it was already standard.
| >
| > I'm confused as to what you're referring to: the C++0x working paper
| > or the libstdc++ implementation?
|
| Sorry for the ambiguous language.
I see; thanks. In my original message, I was answering claims that
C++ was required to be C99 compatible and absence of overloads for
std::cosf.
[...]
| Is there a clear policy for libstdc++ (gcc) for what parts of TR1 get
| adopted today as if they were already part of the standard?
TR1 implementations go into <tr1/>.
In this specific case, it appears to me that you're operating under
the (mistaken) assumption that we selectively merged the C99 math part
of TR1 into the libstdc++. The C99 math stuff particularly hit
libstdc++ long before TR1 was initiated or completed (have to dig to
see the exact dates). The work was mostly contributed by Loren (hi!)
and you can enable/disable them with configure options (which did not
say tr1, but C99 :-). And there has been some controversy along the way.
Don't judge old facts based on new legislations.
(retroactive laws are harmful :-)
[ You will find some requests to add more of those C99 functions in the
bugzilla database. ]
As to overloads for std::cosf (note the suffix), I find the
justificaton for them as "C99 compatibility" as dubious.
| Or is it
| handled on a case-by-case basis using engineering judgement?
The existing pratice for TR1 is put TR1 stuff in <tr1/>. But that
practice came into existing only after TR1, and loong after we dealt
with the pressing C99 basic compatibility.
For C++0x, we would probably have to review some of the design
choices, but that should not be done piecemeal.
-- Gaby