Confusion/trying to understand CTFE keywords

Gopan gggopan at gmail.com
Tue Jun 5 11:18:05 UTC 2018


On Tuesday, 5 June 2018 at 10:40:20 UTC, Simen Kjærås wrote:
> On Tuesday, 5 June 2018 at 09:36:22 UTC, Gopan wrote:
>> void main()
>> {
>>     immutable n = __ctfe ? 1 : 2;
>>     int[n] a;
>>     assert(a.length == n); // fails, wat
>> }
>
> That's gotta be a bug - that should give a 'variable n cannot 
> be read at compile time' error. The fact that n is immutable 
> shouldn't be enough to use it at compile time. Filed as 
> https://issues.dlang.org/show_bug.cgi?id=18945.
>
> --
>   Simen

Not only immutable.  The behavior is same if you declare n as 
'const int' also.




More information about the Digitalmars-d-learn mailing list