comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Ada Smileys in C++ lib Conversion
Date: Mon, 16 Aug 2010 05:39:34 -0700 (PDT)
Date: 2010-08-16T05:39:34-07:00	[thread overview]
Message-ID: <4915efdd-46ba-436b-b989-6067ce5a03bf@i31g2000yqm.googlegroups.com> (raw)
In-Reply-To: mabi66ph5p38pqidk3rcal3bopvbgq155h@4ax.com

On 16 Sie, 14:30, Brian Drummond <brian_drumm...@btconnect.com> wrote:

> The real case was a bit stranger than previous reply (simplifying to a 1-D
> array)
>
> const int xdim = 7;    
> const int size = xdim;  // was a function of all dimensions
> int array[size];
> ...
> error: initializer element is not constant
> error: variably modifed 'array' at file scope
>
> So a "const" is not constant, says the compiler.

The above is guaranteed to work by the C++ standard (nerds see
5.19/1).

The problem will be when the initializer for "size" above will indeed
be a function call - this would not be a constant expression, even
though the object "size" is declared as const.
The reason is that constant expression should always evaluate to the
same value, whereas function calls are not required (and cannot be
verified) to do so.

So, there is a difference between a "constant expression" (roughly
equivalent to Ada's "static expression") and a "const object".
Array bounds require constant expression.

--
Maciej Sobczak * http://www.inspirel.com

YAMI4 - Messaging Solution for Distributed Systems
http://www.inspirel.com/yami4



  reply	other threads:[~2010-08-16 12:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-13 14:20 Ada Smileys in C++ lib Conversion Warren
2010-08-13 15:06 ` Yannick Duchêne (Hibou57)
2010-08-13 16:53 ` Anh Vo
2010-08-14  1:36   ` Warren
2010-08-14  9:52     ` Georg Bauhaus
2010-08-14 10:57     ` Brian Drummond
2010-08-14 20:34       ` Maciej Sobczak
2010-08-14 21:01         ` Dmitry A. Kazakov
2010-08-15  1:16         ` Brian Drummond
2010-08-15 10:04           ` Maciej Sobczak
2010-08-16 12:08             ` Brian Drummond
2010-08-16 12:13               ` Georg Bauhaus
2010-08-16 12:30             ` Brian Drummond
2010-08-16 12:39               ` Maciej Sobczak [this message]
2010-08-16 21:39                 ` Brian Drummond
2010-08-16 22:53                   ` Robert A Duff
2010-08-24 10:12           ` David Thompson
2010-08-30  9:51             ` Brian Drummond
2010-08-16 14:54       ` Warren
2010-08-16 20:27         ` Maciej Sobczak
2010-08-17 12:57           ` Warren
2010-08-17 13:37             ` Maciej Sobczak
2010-08-17 15:07               ` Georg Bauhaus
2010-08-18 17:31               ` Warren
2010-08-24 10:12             ` David Thompson
replies disabled

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