Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: reliably test integer size for portable bit-fiddling?

by danaj (Friar)
on Dec 14, 2014 at 06:28 UTC ( [id://1110290]=note: print w/replies, xml ) Need Help??


in reply to reliably test integer size for portable bit-fiddling?

I find: ~0 > 4294967295 to work and be simple/fast/understandable. Easier to follow at a glance than your pack, no time spent loading Config, no log() needed. If you use it a lot, make it a constant, e.g.

use constant MAXBITS => (~0 > 4294967295) ? 64 : 32;

A downside is that it assumes a 32-/64-bit world so isn't ready for 128-bit UVs if they every come. If you're already using the Config module or think it's more clear and don't care about the small load time, then I'd use that ($Config{uvsize}).

A warning on using ~0: don't use it in a place where bigint, bignum, or integer may be loaded, because it will be -1. This shouldn't be an issue inside your module, but something to be aware of.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1110290]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2024-04-25 17:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found