On Sunday, 21 September 2025 at 20:33:11 UTC, user1234 wrote:
On Saturday, 20 September 2025 at 02:36:47 UTC, Steven
Schveighoffer wrote:
What is a function type? It's the internal type that the
compiler has for a function, which you actually cannot express
in syntax.
Actually D has a syntax
On Friday, 19 September 2025 at 16:58:38 UTC, Ali Çehreli wrote:
On 9/18/25 10:18 PM, Steven Schveighoffer wrote:
> On Thursday, 18 September 2025 at 18:10:13 UTC, Ali Çehreli
wrote:
>> // Not a delegate:
>> static assert(is (typeof(twice) == function));
> You are mistaking the is expre
On Thursday, 18 September 2025 at 18:10:13 UTC, Ali Çehreli wrote:
As stated by multiple people, most nested functions will be
'delegates'. However, a nested function is a 'function' if it
does not touch local scope:
```d
void main() {
int twice(int i) {
return i * 2;
}
//
On Tuesday, 9 September 2025 at 20:08:06 UTC, monkyyy wrote:
On Tuesday, 9 September 2025 at 19:17:11 UTC, Steven
Schveighoffer wrote:
In short `opDispatch` only is valid if it compiles. If it
doesn't compile, it's as if it doesn't exist.
Yours still thinking declaratively, that cant be true
On Tuesday, 9 September 2025 at 00:40:31 UTC, Brother Bill wrote:
```
c:\dev\D\D_templates_tutorial\toy1\source\app.d(8): Error: no
property `callHome` for `l` of type `app.CallLogger!(C)`
l.callHome("foo", "bar");
^
```
You might be expecting `opDispatch` inside `CallLogger` to try
On Monday, 8 September 2025 at 16:23:23 UTC, Brother Bill wrote:
On Monday, 8 September 2025 at 14:42:01 UTC, evilrat wrote:
probably because you have declared nested function `add`
inside `main`, this creates a delegate closure capturing
`main` scope, if you don't want that just mark `add` s
On Wednesday, 3 September 2025 at 23:05:45 UTC, H. S. Teoh wrote:
On Wed, Sep 03, 2025 at 07:56:03PM +, Brother Bill via
Digitalmars-d-learn wrote:
[...]
C, C++ and D can play shenanigans with pointers, such as
casting them to size_t, which hides them from the GC.
D's current GC is conser
On Monday, 1 September 2025 at 13:58:23 UTC, Brother Bill wrote:
I have heard that there are better or at least alternative ways
to have encapsulation, polymorphism and inheritance outside of
OOP.
With OOP in D, we have full support for Single Inheritance,
including for Design by Contract (ex
On Friday, 29 August 2025 at 01:51:27 UTC, Steven Schveighoffer
wrote:
On Friday, 29 August 2025 at 01:24:40 UTC, Steven Schveighoffer
wrote:
Will file an issue, and we should get this fixed.
https://github.com/dlang/phobos/issues/10852
Fixed!
https://github.com/dlang/phobos/pull/10854
Wi
On Sunday, 31 August 2025 at 12:44:33 UTC, Brother Bill wrote:
On Sunday, 31 August 2025 at 01:27:57 UTC, Steven Schveighoffer
wrote:
Why would your second iteration make a difference? Purely by
chance! In fact, on my machine, it does not exit in either
case.
Welcome to the wonderful world of
On Sunday, 31 August 2025 at 03:45:07 UTC, Ali Çehreli wrote:
On 8/30/25 6:34 PM, Steven Schveighoffer wrote:
> The original feature never worked as intended. That section
of the book
> should be removed.
>
> The correct way to do this is a nested synchronized statement:
>
> ```d
> synchronized(
On Saturday, 30 August 2025 at 22:15:26 UTC, Brother Bill wrote:
For the modern D developer, which is the more preferred choice,
to use 'is' or '=='?
`is` will do a direct bitwise comparison of the two sides, and
cannot be hooked with an operator overload. This tests for
*identity* (are the t
On Sunday, 31 August 2025 at 00:46:50 UTC, Brother Bill wrote:
The idea is that multiple shared objects use a common lock.
```d
import std.stdio;
void main()
{
}
class BankAccount
{
}
void transferMoney(shared BankAccount from, shared BankAccount
to)
{
synchronized (from, to)← FAILS
On Saturday, 30 August 2025 at 22:05:49 UTC, Brother Bill wrote:
A predicate (!*isDone) vs. (*isDone == false) seems to have
different behavior, where I would expect identical behavior.
What am I missing?
This program runs forever, even though isDone changes from
false to true.
```d
import
On Saturday, 30 August 2025 at 11:43:27 UTC, Brother Bill wrote:
I tried various code changes, none of which worked.
Kindly provide code changes to fix warnings that reflect modern
D programming.
This worked for me:
```d
import std.stdio;
import std.concurrency;
import std.conv;
struct Calc
A note on your references here:
I'm assuming you are working from a physical book. But the online
book is here: https://ddili.org/ders/d.en/index.html
When you have questions, if you could link to the content, that
would be really helpful. Especially since you are not including
the entire ma
On Thursday, 28 August 2025 at 18:47:19 UTC, Brother Bill wrote:
It seems like 'templates' are the 'Achilles heel' of D.
Without starting a flame war, has D gotten to the point where
ordinary mortals have difficulty coding in D with 'templates'
such as 'cycle' requiring rewrites into 'myCycle'
On Friday, 29 August 2025 at 01:24:40 UTC, Steven Schveighoffer
wrote:
Will file an issue, and we should get this fixed.
https://github.com/dlang/phobos/issues/10852
-Steve
On Thursday, 28 August 2025 at 11:54:10 UTC, Brother Bill wrote:
If line 9 of the program is commented out, it runs fine.
Otherwise lots of error messages which don't pan out for me.
I tried changing Negative.front to be const, which didn't help.
I am not quite sure what the error messages are te
On Tuesday, 26 August 2025 at 18:48:47 UTC, monkyyy wrote:
```d
#!opend -unittest -main -run app.d
bool isEvenImpl(int I)()=>! I%2;
enum cases=1;
import std.range;
bool isEven(int i){
switch(i){
static foreach(I;0..cases){
//foreach(I;enumlist!(iota(cas
On Monday, 25 August 2025 at 08:36:05 UTC, Nick Treleaven wrote:
On Monday, 25 August 2025 at 00:42:33 UTC, Steven Schveighoffer
wrote:
On Sunday, 24 August 2025 at 20:43:15 UTC, Ali Çehreli wrote:
I think you went a little further in that section and made
the return 'auto ref', which does not
On Sunday, 24 August 2025 at 20:43:15 UTC, Ali Çehreli wrote:
I think you went a little further in that section and made the
return 'auto ref', which does not (and should not) fail
compilation.
No. auto ref is only for templates. This is a bug and should not
compile.
-Steve
On Sunday, 24 August 2025 at 15:47:28 UTC, Brother Bill wrote:
On Sunday, 24 August 2025 at 15:29:01 UTC, Steven Schveighoffer
wrote:
I don't know what's happening here, but it seems like a bug.
This should not compile (it does for me, despite the comment
above).
It does compile. I didn't
On Sunday, 24 August 2025 at 15:03:12 UTC, Brother Bill wrote:
On page 549 of Programming in D, it appears that D supports
'escaping' local variables to the heap, when returning their
address.
This is similar to Go.
Is this what is actually going on?
Is this 'safe' to do?
```
&result: AC067AF
On Sunday, 24 August 2025 at 03:13:38 UTC, David T. Oxygen wrote:
The `is_int_or_float()` function has also simplified.
Then I need to use another function to get the type of the
result of `is_int_or_float()`, so I may write another piece of
code like:
```d
import std.stdio;
string inputing="
On Monday, 18 August 2025 at 15:26:21 UTC, monkyyy wrote:
On Monday, 18 August 2025 at 07:32:13 UTC, Steven Schveighoffer
wrote:
2. You can store data in the lower bits of an aligned pointer
(after all, this is just an interior pointer).
Will the gc count this as a reference while scaning in a
On Saturday, 16 August 2025 at 22:00:25 UTC, monkyyy wrote:
Its over in the gc that has any relivence:
https://dlang.org/spec/garbage.html#pointers_and_gc
This list is really mostly based on a hope that at some point D
will have a moving GC. This is never going to happen. Not only
that, but
On Thursday, 24 July 2025 at 18:31:58 UTC, Quirin Schroll wrote:
For example, I originally filed
[DMD#19271](https://github.com/dlang/dmd/issues/19271), but as
far as GitHub is concerned, I’m not the author of that issue so
I can’t close it.
What’s the process for that? I can comment on that
On Sunday, 20 July 2025 at 20:26:02 UTC, Salih Dincer wrote:
On Sunday, 20 July 2025 at 12:32:17 UTC, user1234 wrote:
No problem here either. Where are you running the program from
(embedded terminal in an editor ? a terminal emulator ?). Are
you on Windows or Linux ?
I want the program to en
On Saturday, 12 July 2025 at 23:55:39 UTC, Ali Çehreli wrote:
On 7/11/25 11:36 PM, Bienlein wrote:
> Unhappily class MessageBox is private and therefore cannot be
reused.
Ah! :) That's one more data point against 'private', that
little feature that helps with nothing. I don't know what
langua
On Saturday, 5 July 2025 at 10:39:13 UTC, stef wrote:
Hello,
I'm totally new using D. I'm trying to create a thread using
this code:
```d
…
extern (Windows)
int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
…
```
I'm testing this program using
On Tuesday, 24 June 2025 at 08:48:16 UTC, realhet wrote:
This is working in a normal use case: I create a Texture class
insance, I store it's pointer and later when I press a key, I
release the class pointer.
But when I do not store the class pointer: `new Texture(...);`
It just enters into
On Monday, 9 June 2025 at 07:24:41 UTC, confuzzled wrote:
Hello community,
Is it possible to accomplish the following using ref instead of
pointers? If so, please share an example.
```d
// Represents our Backtester engine
struct Engine
{
// It STORES a pointer to its data source. This is
On Saturday, 14 June 2025 at 00:02:32 UTC, Andrey Zherikov wrote:
The simplest code that shows the issue:
```d
struct S{}
template f(void function(S) F) {}
template f(int function(S) F) {}
mixin f!((_) {});
mixin f!((_) => 0); // Error: cannot return non-void from
`void` function
On Saturday, 14 June 2025 at 00:25:13 UTC, mitgedanken wrote:
I use ``dmd package.d -verrors=3 -debug -I"../.."``.
I get
```sh
Error: undefined reference to
`std.container.array.Array!(minimal.token.token.Token).Array.empty() const`
referenced from `const bool
std.container.array.Array!
On Saturday, 24 May 2025 at 20:29:52 UTC, Andy Valencia wrote:
The best I"ve come up with for a "static if" to see if
something's an array of ubyte:
```d
(isArray!(typeof(arg))) && is(typeof(arg).init[0] == ubyte)
```
Which doesn't seem to work, but it's the closest I've come by
poring over t
On Sunday, 18 May 2025 at 21:40:17 UTC, Damjan wrote:
Do I need to explicitly configure vibe.d to serve static files
from the public folder?
Yes
https://vibed.org/api/vibe.http.fileserver/serveStaticFiles
-Steve
On Monday, 5 May 2025 at 17:15:57 UTC, kdevel wrote:
```d
//
// bs3.d
// 2025-05-05 stvo
//
// $ dmd -g -checkaction=context -unittest -main -run bs3.d
// bs3.d(25): [unittest] [4, 3, 3, 4] != [4, 3, 2, 1]
```
This is a bug, please report it.
-Steve
On Tuesday, 18 March 2025 at 07:42:37 UTC, Jonathan M Davis wrote:
The base class constructors are not nothrow, so WrappedTCP's
constructor cannot be nothrow. There really isn't a way out of
that, because if a constructor throws, the object's state is
destroyed. So, catching and handling the Ex
On Thursday, 27 February 2025 at 08:16:33 UTC, John C. wrote:
On Thursday, 27 February 2025 at 08:10:04 UTC, John C. wrote:
would removing some "hard to parse" constructs in header file
help this situation?
I tried to change
```
#define LIGHTGRAY CLITERAL(Color){ 200, 200, 200, 255 }
On Friday, 21 February 2025 at 13:07:38 UTC, Paul Backus wrote:
On Friday, 21 February 2025 at 07:44:54 UTC, Jonathan M Davis
wrote:
I think that what it basically comes down to is that because
-1 fits in int, and int implicitly converts to uint, VRP is
fine with converting the long with a valu
On Wednesday, 12 February 2025 at 20:55:14 UTC, WhatMeWorry wrote:
```d
void main()
{
struct HexBoard(F,I)
{
this(F d, I r, I c) {}
//void displayHexBoard(HexBoard!(F,I) h) {} // this
compiles fine!
}
void displayHexBoard(HexBoard!(F,I) h) {} // error undefined
identifier F and I
On Sunday, 26 January 2025 at 12:56:55 UTC, ryuukk_ wrote:
common sense would be to make sure you are up to date before
wondering why it's broken
This is the learn forum. People are learning here. Try to be
nicer, there is no need for this.
-Steve
On Monday, 20 January 2025 at 19:03:09 UTC, DLearner wrote:
// In the code below, what fn needs to go in the commented-out
line,
// to make the program print 7, 11 rather than 7, 7?
You can't I don't think get a list of local variables at this
point, but you can get a list of struct member n
On Wednesday, 15 January 2025 at 12:01:21 UTC, realhet wrote:
Hello,
I'm working on understanding and automating the contents of an
X Json file generated by LDC2.
I'm testing it by processing the whole Phobos lib.
The weirdest thing that I've found is this:
X Json:
```
```
Is there somethi
On Wednesday, 8 January 2025 at 02:07:46 UTC, WhatMeWorry wrote:
I thought that the line
import honeycomb : Location;
would only import the symbol struct Location?
So imagine a `honeycomb.d` file that looks like this:
```d
module honeycomb;
import std.stdio;
struct Location {
int r;
On Friday, 27 December 2024 at 19:17:13 UTC, JN wrote:
Why not make 'in' work for arrays (and strings also)?
```
int[string] phonebook;
if ("John" in phonebook) // works
int[] numbers;
if (3 in numbers) // doesn't work, compiler recommends
std.algorithm.find
string buildLog;
if ("build error
On Friday, 20 December 2024 at 09:03:22 UTC, Dan wrote:
Hi Dlang forums.
I ran into some problems when trying to cross compile. Hope
this clarifies the set-up for anyone with the same problems.
Additionally, perhaps these more explicit instructions /
pitfalls could be put into the official [
On Thursday, 19 December 2024 at 18:49:28 UTC, sfp wrote:
Subject lines says it all, I think... The choice to make binary
operators implementable only via this `opBinary` template means
it's unclear how to get virtual operators on an interface.
I am very new to D, and my goal is to learn how
On Saturday, 30 November 2024 at 02:16:35 UTC, Alain De Vos wrote:
After installing raylib library on Debian ,
https://github.com/raysan5/raylib/releases
Running "dub run" i get now the error :
```
dub run
Fetching raylib-d 5.5.1 (getting selected version)...
Performing "debug" build using /us
On Saturday, 30 November 2024 at 01:28:44 UTC, Alain De Vos wrote:
vscode no longer complains.
But "dub run" gives,
```
dub run
Starting Performing "debug" build using /usr/bin/dmd for
x86_64.
Up-to-date raylib-d 5.5.1: target for configuration [library]
is up to date.
Building my
On Friday, 29 November 2024 at 22:02:23 UTC, Alain De Vos wrote:
On Friday, 29 November 2024 at 21:37:48 UTC, Alain De Vos wrote:
I can do "dub add raylib-d" but i have no clue to program a
simple moving circle.
Following program has an import error
```d
import std.stdio: writeln;
import ra
On Monday, 25 November 2024 at 14:24:44 UTC, Bastiaan Veelo wrote:
// Fishy:
inout(E) gun(inout(E) e)
{
//writeln(e.to!string); // only parameters or stack-based
variables can be `inout`
writeln((cast(Unqual!E)e).to!string); // OK
return e;
}
Longstanding issue. When inout was fi
On Monday, 18 November 2024 at 23:43:46 UTC, Liam McGillivray
wrote:
Is there a way to make it so that this struct has only one
qualifier? No distinction?
Can you give an example of a problem and list the error messages?
-Steve
On Friday, 18 October 2024 at 12:07:24 UTC, Kadir Erdem Demir
wrote:
It seems [=] functionality C++ does not exist in D.
No, D does not have this functionality.
By using a helper function I made that example work.
```d
import std.stdio;
auto localFoo(int x) {
return (){ return x;};
}
On Tuesday, 8 October 2024 at 15:10:54 UTC, ryuukk_ wrote:
Nonono, you overthink it
Store last anonamous struct
When you see a field without a type, you assign it with that
anonymous struct
It doesn't work this way. The parser would have to lookahead to
see if the next 2 tokens are an iden
On Sunday, 6 October 2024 at 05:41:10 UTC, ryuukk_ wrote:
There is no new syntax to invent
instead of writing this error:
```
onlineapp.d(8): Error: no identifier for declarator `stats`
```
you generate a random identifier and assign it
```D
extern(D) static Identifier
generateAnonymousId
On Saturday, 5 October 2024 at 06:35:57 UTC, ryuukk_ wrote:
Why is this allowed
```D
struct EntityDef
{
struct
{
int hp;
}
}
```
But not this fucking thing?
```D
struct EntityDef
{
struct
{
int hp;
} stats;
}
```
Let me name my shit
No, i don't wan
On Tuesday, 10 September 2024 at 20:41:12 UTC, Curtis Spencer
wrote:
I'm attempting to upgrade the vibe-d dependencies of a project.
The project compiles fine using `dub`, but the linker fails
with:
…
I'm at a loss for how to fix this linker error. Any help would
be appreciated.
You may
On Monday, 9 September 2024 at 20:02:48 UTC, Jabari Zakiya wrote:
Also for output, I do this:
```
writeln("total twins = ", twinscnt, "; last twin = ", last_twin
- 1, "+/-1");
```
I'd also like to output data as: 123,987 or 123_987
You can use separators using writefln:
```d
writefln("%,
On Monday, 9 September 2024 at 20:02:48 UTC, Jabari Zakiya wrote:
I have this code to input integer values:
```
ulong[] x;
foreach (_; 0 .. 2) { ulong a; readf!" %d"(a); x ~= a; }
end_num = max(x[0], 3);
start_num = max(x[1], 3);
if (start_num > end_num) swap(start_num, end_num);
sta
On Saturday, 31 August 2024 at 12:47:25 UTC, ryuukk_ wrote:
```D
void main()
{
int[string] test;
test["hello"] = 42;
if (auto it = "hello" in test)
{
}
}
```
Is there a way to get the value instead of a pointer? while
keeping the conciseness (one line)
Maybe if(auto it
On Thursday, 8 August 2024 at 06:34:43 UTC, Dakota wrote:
```sh
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/vm_types.h(168):
Error: variable `lib_test.mach_vm_range_recipe_v1_t.range` - no definition of
struct `mach_vm_range`
/
On Saturday, 17 August 2024 at 05:28:37 UTC, Bruce wrote:
What is the best way to search for a function
in the Phobos library?
Go to dlang.org, select dicumentation, then library reference.
Pick any module, click on it
In the upper right, switch the docs from stable to ddox
Now you can use
On Wednesday, 14 August 2024 at 07:48:58 UTC, Cecil Ward wrote:
Does D give any guarantees for performance order-something ?
What’s the current lib implementation like?
It is amortized O(1), like most hash implementations.
-Steve
On Saturday, 3 August 2024 at 12:15:46 UTC, Dennis wrote:
On Thursday, 1 August 2024 at 04:00:08 UTC, An Pham wrote:
pragma(msg, os.stringof...?);
pragma(msg, target.stringof...?);
There's no built-in way, but you can define it yourself in a
helper module:
```D
version(Windows)
enum os
On Saturday, 3 August 2024 at 05:07:55 UTC, Dakota wrote:
```c
#define ERR_SUCCESS 0
#define ERR_INVALID -1 // invalid argument
```
If the number >=0, it work. < 0 will not work.
DMD64 D Compiler v2.110.0-beta.1
https://issues.dlang.org/show_bug.cgi?id=24639
-Steve
On Saturday, 13 July 2024 at 17:41:42 UTC, mw wrote:
Hi,
on doc:
https://dlang.org/phobos/std_container_rbtree.html#.RedBlackTree
I cannot find any search method?! e.g. `contains`, `canFind`.
Is this a over look? Or there are such functions else where?
The functions are called `equalRange`
On Monday, 8 July 2024 at 08:56:51 UTC, drug007 wrote:
How can I "break" this recursion or some other work around to
fix it?
A few ideas:
1. If it's immediately recursive (that is, contains a pointer to
itself), just use the type itself somehow. You may not be able to
do this with recursive
On Monday, 8 July 2024 at 13:29:05 UTC, user1234 wrote:
On Monday, 8 July 2024 at 08:56:51 UTC, drug007 wrote:
I need to generate some meta info of my data types. I do it
this [...]
How can I "break" this recursion or some other work around to
fix it?
Use `Node*[]` for the children type. That
On Tuesday, 9 July 2024 at 03:04:50 UTC, Steven Schveighoffer
wrote:
Can you post the error and the exact code that fails? I tried
building this (with the children uncommented out) and it works
fine.
Ignore this, I didn't really read the whole message.
-Steve
On Monday, 8 July 2024 at 08:56:51 UTC, drug007 wrote:
I need to generate some meta info of my data types. I do it
this
[way](https://gist.github.com/drug007/b0a00dada6c6ecbf46b4f6988401d4e2):
```D
import std.range, std.format, std.stdio, std.traits;
struct NestedType
{
string s;
doubl
On Sunday, 7 July 2024 at 14:15:02 UTC, Ki Rill wrote:
On Sunday, 7 July 2024 at 11:33:47 UTC, Sergey wrote:
On Sunday, 7 July 2024 at 10:55:21 UTC, Ki Rill wrote:
Machine:
```
MacBook Pro (Retina, 15-inch, Late 2013), macOS Big Sur
version 11.7.10
```
How should I solve this? It mentions un
On Wednesday, 3 July 2024 at 11:57:58 UTC, Lance Bachmeier wrote:
On Wednesday, 3 July 2024 at 03:52:41 UTC, Steven Schveighoffer
wrote:
And yes, it is faster to do this than appending. But you have
to do a *lot* of it to make a huge difference.
What about creating an array of strings and th
On Tuesday, 2 July 2024 at 07:23:42 UTC, ryuukk_ wrote:
I said it 2 times already, i don't want string concatenation,
i'll benchmark later, but not right now, right now i'm looking
for a functioning code without string concatenation
Your buffer solution works, but you need to put it inside a
On Saturday, 29 June 2024 at 23:33:41 UTC, solidstate1991 wrote:
My usecase scenario doesn't really allow constructors for the
struct, since it's a binding to an external library via C API.
BTW, this is not true. A constructor does not change the struct
layout or anything about it from the C
On Saturday, 29 June 2024 at 23:33:41 UTC, solidstate1991 wrote:
```d
union U {
int i32;
long i64;
float f32;
double f64;
}
struct S {
TypeEnum type;
U data;
}
S foo0 = S(TypeEnum.Integer32, S(20)); //Ugly, but works
S foo1 = S(TypeEnum.Integer64, S(20L)); //Error: cann
On Tuesday, 18 June 2024 at 09:10:28 UTC, realhet wrote:
I tried to narrow the problem, but I wasn't able, but I guess
I've found another solution: There is a part in my framework
which works with LDC2 1.28, but that's 'illegal' with later
versions.
Oh yeah. That is many versions ago! Release
On Monday, 17 June 2024 at 19:45:18 UTC, realhet wrote:
Hello,
I'm having a weird case of access violation.
Often times, you are focused on something that isn't the problem,
but *triggers* the problem. Not saying it's not a compiler error,
it could be. But chances are pretty low.
If you c
On Tuesday, 11 June 2024 at 22:54:50 UTC, Steven Schveighoffer
wrote:
Let's see how it works if you want to both check that the value
is a `double[]` and that it matches your value:
```d
SumType!(double[], int) s = [1.7, 2.7, 3.7, 4.7, 5.7];
assert(s.data.match!(
```
This should be `s.match
On Tuesday, 11 June 2024 at 16:41:46 UTC, confuzzled wrote:
Comparison between a Variant and an array is straightforward.
How does one accomplish the same between a SumType and an array?
```d
import std.variant;
import std.sumtype;
import std.stdio;
struct S
{
SumType!(double[]) data; //
On Tuesday, 11 June 2024 at 13:00:50 UTC, Vinod K Chandran wrote:
Hi all,
I am planning to write some D code without GC. But I have no
prior experience with it. I have experience using manual memory
management languages. But D has so far been used with GC. So I
want to know what pitfalls it ha
On Saturday, 8 June 2024 at 13:19:30 UTC, Eric P626 wrote:
I managed to create a random number generator using the
following code:
~~~
auto rng = Random(42);
//
uniform(0,10,rng);
~~~
Now I want to seed the generator using system time. I looked at
Date & time functions/classes and systime
On Saturday, 8 June 2024 at 02:22:00 UTC, Xiaochao Yan wrote:
Hi, I am new to D and is experimenting with game development
using D and C.
I had some problem when trying to recreate the
https://dlang.org/spec/importc.html
Environment:
Windows 11
gcc.exe (i686-posix-dwarf-rev0, Built by MinGW-W6
On Tuesday, 4 June 2024 at 16:58:50 UTC, Basile B. wrote:
question in the header, code in the body, execute on a X86 or
X86_64 CPU
```d
module test;
void setIt(ref bool b) @safe
{
b = false;
}
void main(string[] args)
{
ushort a = 0b;
bool* b = cast(bool*)&a;
s
On Tuesday, 28 May 2024 at 18:41:02 UTC, bauss wrote:
On Tuesday, 28 May 2024 at 18:29:17 UTC, Ferhat Kurtulmuş wrote:
On Tuesday, 28 May 2024 at 17:37:42 UTC, bauss wrote:
I have two questions that I can't seem to find a solution to
after looking at std.datetime.
First question is how do I g
On Tuesday, 28 May 2024 at 12:35:42 UTC, bauss wrote:
Running into a couple of problems trying to hide the console
that opens when running an app that uses sdl2.
First of all I am trying to compile with this using dub:
```
"lflags": ["/SUBSYSTEM:windows"]
```
However that gives me the followi
On Thursday, 16 May 2024 at 17:04:09 UTC, user1234 wrote:
Given
```d
struct S
{
int member;
}
__gshared S s;
```
It's clear that `s.member` is `__gshared` too, right ?
What does happen for
```d
struct S
{
int member;
static int globalMember;
}
__gshared S s;
```
Is then `S.globa
On Friday, 10 May 2024 at 11:05:28 UTC, Dukc wrote:
This also gets inferred as `pure` - meaning that if you use it
twice for the same `WeakRef`, the compiler may reuse the result
of the first dereference for the second call, without checking
whether the referred value has changed!
This wou
On Friday, 10 May 2024 at 01:00:09 UTC, Andy Valencia wrote:
On Friday, 10 May 2024 at 00:40:01 UTC, Meta wrote:
Yes. The reason for this is that it avoids having to
essentially do the same check twice. If `in` returned a bool
instead of a pointer, after checking for whether the element
exists
On Tuesday, 7 May 2024 at 00:10:27 UTC, Andy Valencia wrote:
I had a set of default error messages to go with error code
numbers, and did something along the lines of:
string[uint] error_text = [
400: "A message",
401: "A different message"
];
and got "expression is not a constant
On Monday, 6 May 2024 at 06:29:49 UTC, Liam McGillivray wrote:
Delegates can be a pain, as they often have results different
from what one would intuitively expect. This can easily result
in bugs.
Here's a line that caused a bug that took me awhile to find:
```
foreach(card; unitCards) card.su
On Sunday, 5 May 2024 at 14:55:20 UTC, SimonN wrote:
My application is a graphical game. I close stdout and stderr
by passing `-subsystem:windows` to `lld-link` to suppress the
extra console window. For a few fatal errors (missing required
resources, can't open display, ...), I throw exceptions
On Wednesday, 1 May 2024 at 01:09:33 UTC, Liam McGillivray wrote:
This is presumably such a common task that I'm surprised it
isn't easy to find the answer by searching;
Is there a standard library function that removes all elements
from a dynamic array that matches an input argument?
In `st
On Monday, 22 April 2024 at 11:36:43 UTC, Chloé wrote:
The first implementation has the advantage is being simpler and
empty being const, but has the downside that next is called
even if the range ends up not being used. Is either approach
used consistently across the D ecosystem?
I always g
On Thursday, 18 April 2024 at 11:05:07 UTC, yabobay wrote:
On Wednesday, 17 April 2024 at 15:24:07 UTC, Ferhat Kurtulmuş
wrote:
On Wednesday, 17 April 2024 at 11:03:22 UTC, yabobay wrote:
I'm using [dray](https://code.dlang.org/packages/dray) in my
project with dub, here's the relevant parts of
On Sunday, 14 April 2024 at 22:36:18 UTC, Liam McGillivray wrote:
On Friday, 12 April 2024 at 15:24:38 UTC, Steven Schveighoffer
wrote:
```d
void InitWindow(int width, int height, ref string title) {
InitWindow(width, height, cast(const(char)*)title);
}
```
This is invalid, a string may no
On Friday, 12 April 2024 at 00:04:48 UTC, Liam McGillivray wrote:
Here's what I wanted to do.
In the library I'm working on, there are various declarations
for functions defined in an external C library following the
line `extern (C) @nogc nothrow:`. Here are some examples of
such declaration
On Friday, 12 April 2024 at 03:57:40 UTC, John Dougan wrote:
What is the procedure for bug reporting? I'm looking at the
issues tracker and have no clue how to drive the search to see
if this is already there.
https://issues.dlang.org
While entering the bug title, it does a fuzzy search fo
On Thursday, 11 April 2024 at 03:17:36 UTC, John Dougan wrote:
Interesting. Thank you to both of you.
On Wednesday, 10 April 2024 at 17:38:21 UTC, Steven
Schveighoffer wrote:
On Wednesday, 10 April 2024 at 11:34:06 UTC, Richard (Rikki)
Andrew Cattermole wrote:
Place your attributes on the righ
1 - 100 of 1059 matches
Mail list logo