Opened 19 years ago
Closed 17 years ago
#200 closed Bugs (Wont Fix)
cast.hpp: greater_than_type_max<false, false> int/uint
Reported by: | nobody | Owned by: | david_abrahams |
---|---|---|---|
Milestone: | Component: | None | |
Version: | None | Severity: | |
Keywords: | Cc: |
Description
Submitted by holger.joukl@lbbw.de File boost/boost/boost/cast.hpp: If the greater_than_type_max check method is called in this specialization: greater_than_type_max<false, false>.check(x, y) with unsigned int x and int y=INT_MAX, and x is bigger than INT_MAX, the check fails. Maybe it could be done this way (but I am C++ newbie, so I might overlook the subtleties): *** cast.hpp.orig Wed Sep 17 11:45:33 2003 --- cast.hpp Wed Sep 17 11:47:12 2003 *************** *** 295,301 **** // will work with every compiler I know of. template <class X, class Y> static inline bool check(X x, Y) ! { return static_cast<X>(static_cast<Y>(x)) != x; } }; #else // use #pragma hacks if available --- 295,301 ---- // will work with every compiler I know of. template <class X, class Y> static inline bool check(X x, Y) ! { return (static_cast<X>(static_cast<Y>(x)) != x) || (static_cast<Y>(x) < 0); } }; #else // use #pragma hacks if available
Change History (1)
comment:1 by , 17 years ago
Status: | assigned → closed |
---|---|
Summary: | cast.hpp: greater_than_type_max<false, false> int/uint bug → cast.hpp: greater_than_type_max<false, false> int/uint |
Note:
See TracTickets
for help on using tickets.