Should `pragma(inline, expression)` be allowed ?

Basile B. b2.temp at gmx.com
Tue Oct 20 10:27:16 UTC 2020


On Tuesday, 20 October 2020 at 10:16:26 UTC, Max Samukha wrote:
> On Tuesday, 20 October 2020 at 08:52:07 UTC, Basile B. wrote:
>
>>
>> yeah, CTFE on `version()` would be basically like `static if 
>> (ident <op> ident)` and alikes, so `version()` much less 
>> justified because not special anymore.
>>
>> By the way, to the attention of James, the other day I've 
>> found this nice helper by Simons K: 
>> https://forum.dlang.org/post/tghdaffyugrajmenddav@forum.dlang.org, allowing to use version idents in static if expressions, the easiest way possible.
>
> It takes a special kind of stubbornness to reject the fact that 
> version's limitations failed to serve their purpose.

IIRC the main rationale for version limitations is that they are 
supposed to prevent bugs related to preprocessors in other 
languages, which may be counter- intuitive to verify: People 
complain that it's not super friendly to combine versions but do 
they complain because of pernicious bugs inherent to the lack of 
combinations ?

side note: I'm not especially pro D-versions (my toy language 
allows version operator for example [1]), but I understand why 
they are limited in D. It's been explained many times.

[1]: 
https://gitlab.com/basile.b/styx/-/blob/master/src/styx/semantic/versions.d#L403


More information about the Digitalmars-d mailing list