comp.lang.ada
 help / color / mirror / Atom feed
From: "Jeffrey R. Carter" <spam.not.jrcarter@acm.not.spam.org>
Subject: Re: Ranges and (non)static constraints
Date: Thu, 16 Nov 2006 19:01:39 GMT
Date: 2006-11-16T19:01:39+00:00	[thread overview]
Message-ID: <nA27h.238073$FQ1.98233@attbi_s71> (raw)
In-Reply-To: <ejhonl$nvu$1@cernne03.cern.ch>

Maciej Sobczak wrote:
> 
> OK, now I see - but is there any preference I should give to one of 
> these two forms apart from that? I understand that the second form is 
> the only I can use if the range is not statically known and (what 
> surprised me) when the constraints come from formal generic parameters.
> But even if the range is known statically, I might choose to always use 
> the second form for notational consistency. Is this recommended?

No. You're relying on Integer, which is only required to be 16 bits. In 
addition, Integer is the only required predefined integer type. So using 
Long_Integer and its friends is not portable. So it's best to use the 
1st form whenever possible. When you must have a non-static range, you 
should define your own parent type using application limits on the 
possible range to derive from. If there are no such limits, then use a 
type based on System.Min_Int and System.Max_Int to derive from.

> Assuming that T'Size = U'Size, can I expect any run-time observable 
> (including performance) differences between T and U?

There should be none. In your example, U'Size = Integer'Size.

-- 
Jeff Carter
"Hello! Smelly English K...niggets."
Monty Python & the Holy Grail
08



  reply	other threads:[~2006-11-16 19:01 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-16 11:02 Ranges and (non)static constraints Maciej Sobczak
2006-11-16 12:23 ` Martin Krischik
2006-11-16 13:23   ` Maciej Sobczak
2006-11-16 19:01     ` Jeffrey R. Carter [this message]
2006-11-18  0:02   ` Robert A Duff
2006-11-16 13:13 ` Dmitry A. Kazakov
2006-11-16 17:18   ` Jean-Pierre Rosen
2006-11-17  9:08     ` Dmitry A. Kazakov
2006-11-17 10:30       ` Stuart
2006-11-17 10:37       ` Jean-Pierre Rosen
2006-11-17 14:57         ` Dmitry A. Kazakov
2006-11-17 16:04           ` Jean-Pierre Rosen
2006-11-18  9:51             ` Dmitry A. Kazakov
2006-11-18 14:17             ` Stephen Leake
2006-11-17 20:05           ` Jeffrey R. Carter
2006-11-17 23:58             ` Robert A Duff
2006-11-18  9:47               ` Dmitry A. Kazakov
2006-11-19  2:27               ` Jeffrey R. Carter
2006-11-19 12:13                 ` Björn Persson
2006-11-19 22:51                 ` Robert A Duff
2006-11-20  3:51                   ` Jeffrey R. Carter
2006-11-21 21:02                     ` Robert A Duff
2006-11-20 17:35                   ` Adam Beneschan
2006-11-17 15:45         ` Maciej Sobczak
2006-11-17 16:45           ` Jean-Pierre Rosen
2006-11-17 10:39       ` AW: " Grein, Christoph (Fa. ESG)
2006-11-17 11:20         ` Dmitry A. Kazakov
2006-11-17 13:30           ` Stuart
2006-11-17 15:07             ` Dmitry A. Kazakov
2006-11-17 16:47               ` Jean-Pierre Rosen
2006-11-20 14:08               ` Stuart
2006-11-20 14:12                 ` Stuart
2006-11-20 15:48                   ` Dmitry A. Kazakov
2006-11-16 18:56   ` Jeffrey R. Carter
2006-11-16 20:00 ` Adam Beneschan
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox