## digitalmars.D - odd issue in 1.006

• Kevin Bealer (6/6) Feb 17 2007 In 1.006, this seems to be allowed in a CTFE function:
• Walter Bright (2/10) Feb 17 2007 Both should work. Can you provide a complete example?
• Kevin Bealer (29/40) Feb 17 2007 Sure; in the 'bar' function below, the 'v += A.length' fails, but the
Kevin Bealer <kevinbealer gmail.com> writes:
```In 1.006, this seems to be allowed in a CTFE function:

int q = A[i..j].length;
c += q;

But not this:

c += A[i..j].length;

Kevin
```
Feb 17 2007
Walter Bright <newshound digitalmars.com> writes:
```Kevin Bealer wrote:
In 1.006, this seems to be allowed in a CTFE function:

int q = A[i..j].length;
c += q;

But not this:

c += A[i..j].length;

Both should work. Can you provide a complete example?
```
Feb 17 2007
Kevin Bealer <kevinbealer gmail.com> writes:
```Walter Bright wrote:
Kevin Bealer wrote:
In 1.006, this seems to be allowed in a CTFE function:

int q = A[i..j].length;
c += q;

But not this:

c += A[i..j].length;

Both should work. Can you provide a complete example?

Sure; in the 'bar' function below, the 'v += A.length' fails, but the
previous two lines work just fine as a replacement.  The failure is
reported like this:

dmd -ofexa example.d
example.d(26): Error: cannot evaluate (bar)("a b c d") at compile time

Kevin

// -*- c++ -*-

import std.stdio;
import std.string;
import std.file;

// For DMD 1.006

int bar(char[] A)
{
int v;

for(int i = 0; i < A.length; i++) {
if (A[i] != ' ') {
//          int q = A.length; // these work
//          v += q;
v += A.length; // but this fails
}
}

return v;
}

int main(char[][] args)
{
const int foo = bar("a b c d");

return 0;
}
```
Feb 17 2007