Do C++ signed types have modulo semantics?
Gabriel Dos Reis
gdr@integrable-solutions.net
Mon Jun 27 15:21:00 GMT 2005
Morten Welinder <mwelinder@gmail.com> writes:
| | signed types are undefined on overflow. [5/5] and [3.9.1/2,3]
|
| > But a compiler could define them to be modulo -- that is the whole
| > point. The paragraph does not say they don't "modulo".
|
| True, but you are going to have to deal with the run-time version of
|
| (int)0x80000000 / -1
|
| which is unpleasant in the sense that Intel processors will trap and not
| do anything modulo-like.
If such things really yields undefined behaviour on Intel's then
numeric_limits<> for Intel's should be changed accoordingly. It does
not imply that numeric_limits<>::is_modulo is false for all targets
supported by GCC.
-- Gaby
More information about the Gcc
mailing list