Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
January 13, 2021 writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Hello all,
Tell me please how can I "writeln" and "write" in function that is used in CTFE?
At the moment I get this:
> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
Or may be exist some other ways to do it?
|
January 13, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote:
> Hello all,
> Tell me please how can I "writeln" and "write" in function that is used in CTFE?
> At the moment I get this:
>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
>
> Or may be exist some other ways to do it?
pragma(msg, <compile-time-expr>);
|
January 13, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to Guillaume Piolat | On Wednesday, 13 January 2021 at 09:11:53 UTC, Guillaume Piolat wrote: > On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote: >> Hello all, >> Tell me please how can I "writeln" and "write" in function that is used in CTFE? >> At the moment I get this: >>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time >> >> Or may be exist some other ways to do it? > > pragma(msg, <compile-time-expr>); This may however not do what you wish it to do: https://forum.dlang.org/post/mailman.4526.1499573493.31550.digitalmars-d-learn@puremagic.com — Bastiaan. |
January 13, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bastiaan Veelo | On Wednesday, 13 January 2021 at 11:31:16 UTC, Bastiaan Veelo wrote:
> On Wednesday, 13 January 2021 at 09:11:53 UTC, Guillaume Piolat wrote:
>> On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote:
>>> Hello all,
>>> Tell me please how can I "writeln" and "write" in function that is used in CTFE?
>>> At the moment I get this:
>>>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
>>>
>>> Or may be exist some other ways to do it?
>>
>> pragma(msg, <compile-time-expr>);
>
> This may however not do what you wish it to do: https://forum.dlang.org/post/mailman.4526.1499573493.31550.digitalmars-d-learn@puremagic.com
>
> — Bastiaan.
Function "ctfeWriteln" doens't exist.
pragma(msg, ...) is used only for CT values.
Today is 2021. Dlang still doesn't have ctfe write functions?
|
January 13, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Wednesday, 13 January 2021 at 11:50:26 UTC, Andrey wrote:
>
> Function "ctfeWriteln" doens't exist.
>
> pragma(msg, ...) is used only for CT values.
>
> Today is 2021. Dlang still doesn't have ctfe write functions?
Yes.(afaik)
It has shot me on the foot once, to the point i abandoned the idea of ever accomplishing what i wanted to do at compile-time and instead just did it at module construction-time, and i must admit that it was immediately easier to debug.
|
January 13, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Wednesday, 13 January 2021 at 11:50:26 UTC, Andrey wrote:
> Today is 2021. Dlang still doesn't have ctfe write functions?
You make it sound like D is behind the times. Is CTFE I/O a standard feature in other languages? How many other languages even have a CTFE feature comparable to D's?
|
January 14, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to tsbockman | On 13.01.21 21:47, tsbockman via Digitalmars-d-learn wrote:
> Is CTFE I/O a standard feature in other languages? How many other languages even have a CTFE feature comparable to D's?
Just two langs I use from time to time:
1) nim via forced ctfe; way faster than d by running through a vm:
const foo = fib(42)
static:
echo "foobar"
2) crystal via macros:
{{ puts "foobar" }}
Another one would be zig via comptime, but never tried that.
|
January 14, 2021 Re: writeln and write at CTFE | ||||
---|---|---|---|---|
| ||||
Posted in reply to oddp | On Wednesday, 13 January 2021 at 23:38:54 UTC, oddp wrote:
> Just two langs I use from time to time:
>
> 1) nim via forced ctfe; way faster than d by running through a vm:
>
> const foo = fib(42)
> static:
> echo "foobar"
>
> 2) crystal via macros:
>
> {{ puts "foobar" }}
>
> Another one would be zig via comptime, but never tried that.
Good to know... doesn't sound like it's some kind of standard "2021" feature, though. Those are all lesser-known languages (like D), not industry standard stuff like C++, Java, etc.
|
Copyright © 1999-2021 by the D Language Foundation