Date: Mon, 12 Apr 2021 14:37:51 +0200
Aaron,
on Mon, 12 Apr 2021 07:59:03 -0400 you (Aaron Ballman
<aaron_at_[hidden]>) wrote:
> Correcting the liaison email address so they're included.
>
> On Sun, Apr 11, 2021 at 5:12 AM Jens Gustedt <jens.gustedt_at_[hidden]>
> wrote:
> > Lambda expressions already have a interesting incompatibility with
> > designators in initializers compared to C17, which I only found out
> > by the integration mentioned above. If we are in a world where
> > (implementation-defined) some constant objects can also be ICE, such
> > as
> >
> > int const something = 42;
>
> <tangent>Perhaps I'm misunderstanding 6.6p10, but I don't believe that
> gives you leave to turn this into an *integer constant expression*
> just a *constant expression*. ICE is a more specific term that has
> further semantic meaning elsewhere, and I was not under the impression
> implementations were allowed to define new kinds of integer constant
> expressions. e.g., I think it's invalid for an implementation to
> decide these are identical declarations: int foo[something]; and int
> foo[42];</tangent>
interesting, I can read that differently.
Such as that this phrase opens all the categories (ICE, address
constants, ...) that are introduced in that clause. I vaguely remember
that some implementation used that phrase to extend what they accept
as address constant.
Jens
on Mon, 12 Apr 2021 07:59:03 -0400 you (Aaron Ballman
<aaron_at_[hidden]>) wrote:
> Correcting the liaison email address so they're included.
>
> On Sun, Apr 11, 2021 at 5:12 AM Jens Gustedt <jens.gustedt_at_[hidden]>
> wrote:
> > Lambda expressions already have a interesting incompatibility with
> > designators in initializers compared to C17, which I only found out
> > by the integration mentioned above. If we are in a world where
> > (implementation-defined) some constant objects can also be ICE, such
> > as
> >
> > int const something = 42;
>
> <tangent>Perhaps I'm misunderstanding 6.6p10, but I don't believe that
> gives you leave to turn this into an *integer constant expression*
> just a *constant expression*. ICE is a more specific term that has
> further semantic meaning elsewhere, and I was not under the impression
> implementations were allowed to define new kinds of integer constant
> expressions. e.g., I think it's invalid for an implementation to
> decide these are identical declarations: int foo[something]; and int
> foo[42];</tangent>
interesting, I can read that differently.
Such as that this phrase opens all the categories (ICE, address
constants, ...) that are introduced in that clause. I vaguely remember
that some implementation used that phrase to extend what they accept
as address constant.
Jens
-- :: INRIA Nancy Grand Est ::: Camus ::::::: ICube/ICPS ::: :: ::::::::::::::: office Strasbourg : +33 368854536 :: :: :::::::::::::::::::::: gsm France : +33 651400183 :: :: ::::::::::::::: gsm international : +49 15737185122 :: :: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::
Received on 2021-04-12 07:37:57