Where are std::sinf( float ) etc.

Gabriel Dos Reis gdr@integrable-solutions.net
Thu Dec 29 20:09:00 GMT 2005


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



More information about the Libstdc++ mailing list