
On 8/15/04 12:32 PM, "David Abrahams" <dave@boost-consulting.com> wrote:
"Aaron W. LaFramboise" <aaronrabiddog51@aaronwl.com> writes:
This is a followup from prior threads: TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC in type_traits/is_convertable.hpp: http://thread.gmane.org/gmane.comp.lib.boost.devel/106708 long long support with GCC: http://thread.gmane.org/gmane.comp.lib.boost.user/6693
The following patch is another attempt to get long long support working, in a manner acceptable with Boost, even when -std=c++98 and -pedantic are specified. In particular, GCC supports long long in all modes, but __extension__ is required to quiet errors and warnings.
It is possible that other C++ compilers with a similar situation regarding long long might be able to use this patch constructively.
In short, typedefs are added for long long and unsigned long long in cstdint.hpp, and all uses of these typenames in the headers are changed to use these new names.
On naming, I think long_long and unsigned_long_long might be better, but I don't have a strong position here.
I don't understand what problem this change is going to solve. If a compiler has a strict C++-1998 mode, then supporting "(unsigned) long long" anyway is sort-of a disfeature. Maybe we should just have the headers assume that the double-long types are absent. (The changes don't affect compilers that don't have the double-long types at all, right?)
The patch is essentially OK with me, but it touches a number of other peoples' libraries so we maybe should hear from others, and it will require some labor to commit. Should we give Aaron CVS access for this?
-- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com