ctfe and static arrays
anonymous via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun May 24 11:14:18 PDT 2015
On Sunday, 24 May 2015 at 17:35:39 UTC, Jay Norwood wrote:
> I'm a bit confused by the documentation of the ctfe limitations
> wrt static arrays due to these seemingly conflicting
> statements, and the examples didn't seem to clear anything up.
> I was wondering if anyone has examples of clever things that
> might be done with static arrays and pointers using ctfe.
>
> 2.Executed expressions may not reference any global or local
> static variables.
>
> C-style semantics on pointer arithmetic are strictly enforced.
> Pointer arithmetic is permitted only on pointers which point to
> static or dynamic array elements.
"Static array" has a special meaning. It does not mean "static
variable with an array type". Static arrays are those of the form
Type[size]. That is, the size is known statically.
Examples:
1) static int[5] x; -- x is a static variable with a static array
type
2) static int[] x; -- static variable, dynamic array
3) int[5] x; -- non-static variable, static array
4) int[] x; -- non-static variable, dynamic array
So, CTFE can't handle examples 1 and 2, because they're static
variables. 3 and 4 are fine.
More information about the Digitalmars-d-learn
mailing list