comp.lang.ada
 help / color / mirror / Atom feed
From: aaro@iki.fi (Aaro Koskinen)
Subject: Re: Static assertions
Date: 19 May 2001 11:36:00 +0300
Date: 2001-05-19T08:36:02+00:00	[thread overview]
Message-ID: <pdx7kzd3fdb.fsf@sirppi.helsinki.fi> (raw)
In-Reply-To: 9e0pfb$ao9$1@s1.read.news.oleane.net

"Jean-Pierre Rosen" <rosen@adalog.fr> writes:
> 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.

I have been using a similar method in C. I have an assert macro, which
declares a const int with the value "1 / <static boolean expression>".
If the assertion does not hold, it evaluates to 0, and the code will
not compile.

-- 
Aaro Koskinen, aaro@iki.fi, http://www.iki.fi/aaro



  parent reply	other threads:[~2001-05-19  8:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-17 15:07 Static assertions Jean-Pierre Rosen
2001-05-17 17:44 ` 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 [this message]
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