This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: tr1::unordered_set<double> bizarre rounding behavior (x86)
- From: Michael Veksler <VEKSLER at il dot ibm dot com>
- To: Michael Veksler <VEKSLER at il dot ibm dot com>
- Cc: gcc at gcc dot gnu dot org, Paolo Carlini <pcarlini at suse dot de>, Gabriel Dos Reis <gdr at integrable-solutions dot net>
- Date: Tue, 5 Jul 2005 23:36:16 +0300
- Subject: Re: tr1::unordered_set<double> bizarre rounding behavior (x86)
There is one more thing to consider: the ABI.
By changing the code in the header file will break the ABI
of tr1::unordered_set. Code compiled with older gcc and
newer and fixed-gcc will not interoperate.
I don't see an easy path to avoid ABI breakage this time,
however how about preparing for future breakage when
std::tr1::hash<T> changes again?
Maybe move all the specialized hash<T> code from
tr/functional into libstdc++.so? Maybe move specialized
hashtable<double>, unordered_XXX<float> and friends into
libstdc++.so? This way, when hash<T> and
std::equal_to<double> change again, the ABI will be not
as affected.
Michael.