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.
