comp.lang.ada
 help / color / mirror / Atom feed
From: "Jean-Pierre Rosen" <rosen@adalog.fr>
Subject: Static assertions
Date: Thu, 17 May 2001 17:07:51 +0200
Date: 2001-05-17T17:07:51+02:00	[thread overview]
Message-ID: <9e0pfb$ao9$1@s1.read.news.oleane.net> (raw)

Still discovering how powerful Ada is...

Imagine your program relies on Integer having a certain size, or being sure
that the size of Integer is four times the size of character, or things like
that, and you want to make sure that the program does not even compile if
the assertions do not hold (because you hate fighting with a debugger). This
is possible, since a static expression that raises constraint_error will not
compile. Just include something like the following package:

package Verifier is
   subtype Assert is Boolean range True..True;

   Assert_1 : constant := Boolean'Pos( Assert (Integer'Size=32) );
   Assert_2 : constant := Boolean'Pos( Assert
(Integer'Size=4*Character'Size) );
end Verifier;

(The Boolean'Pos serves to have a value used in a named number declaration,
which requires a static context).
--
---------------------------------------------------------
           J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr





             reply	other threads:[~2001-05-17 15:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-17 15:07 Jean-Pierre Rosen [this message]
2001-05-17 17:44 ` Static assertions Jeffrey Carter
2001-05-17 19:09   ` Marin David Condic
2001-05-17 22:34     ` Jeffrey Carter
2001-05-18 13:39       ` Marin David Condic
2001-05-18  1:23 ` Robert A Duff
2001-05-19  7:40 ` David Kristola
2001-05-19 22:56   ` Robert A Duff
2001-05-19  8:36 ` Aaro Koskinen
2001-05-21  7:50   ` Jean-Pierre Rosen
2001-06-12  3:59     ` David Thompson
  -- strict thread matches above, loose matches on Subject: below --
2001-05-18  5:34 Christoph Grein
2001-05-18 13:38 ` Robert A Duff
2001-05-18 16:15   ` Jeffrey Carter
2001-05-18 17:25     ` Ted Dennison
2001-05-18 21:27     ` Robert A Duff
2001-05-18 22:46       ` Jeffrey Carter
2001-05-19 22:53         ` Robert A Duff
replies disabled

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