Re: How to construct a struct that does not explicitly define a constructor

2025-03-01 Thread Paul Backus via Digitalmars-d-learn
On Saturday, 1 March 2025 at 03:13:55 UTC, user1234 wrote: because the tuple-expression `(0,0.1)` is explicitly convertible to `Test`, based on the concept of "structural typing". Even if D has tuples, I highly doubt that it will have this kind of implicit conversion from tuples to structs. D

Re: How to construct a struct that does not explicitly define a constructor

2025-02-28 Thread user1234 via Digitalmars-d-learn
On Saturday, 1 March 2025 at 02:19:55 UTC, Meta wrote: Thanks, I forgot about that syntax. Another question I have is if there's a way to do this inline: ```d struct Test { int n; float f; static Test opCall(int n, float f) { //return {n, f};Error

Re: How to construct a struct that does not explicitly define a constructor

2025-02-28 Thread Paul Backus via Digitalmars-d-learn
On Saturday, 1 March 2025 at 02:19:55 UTC, Meta wrote: On Saturday, 1 March 2025 at 00:47:20 UTC, Paul Backus wrote: What you can do is use curly-brace initialization syntax: Thanks, I forgot about that syntax. Another question I have is if there's a way to do this inline: No, there's no w

Re: How to construct a struct that does not explicitly define a constructor

2025-02-28 Thread Meta via Digitalmars-d-learn
On Saturday, 1 March 2025 at 00:47:20 UTC, Paul Backus wrote: What you can do is use curly-brace initialization syntax: ```d struct Test { int n; float f; static Test opCall(int n, float f) { Test result = { n, f }; return result; } } void main() { auto

Re: How to construct a struct that does not explicitly define a constructor

2025-02-28 Thread Paul Backus via Digitalmars-d-learn
On Friday, 28 February 2025 at 23:31:23 UTC, Meta wrote: ```d struct Test { int n; float f; static Test opCall(int n, float f) { return Test(n, f); } } void main() { Test(1, 2.0); } ``` This code causes an infinite loop because the `Test(n, f)` inside the stati

How to construct a struct that does not explicitly define a constructor

2025-02-28 Thread Meta via Digitalmars-d-learn
```d struct Test { int n; float f; static Test opCall(int n, float f) { return Test(n, f); } } void main() { Test(1, 2.0); } ``` This code causes an infinite loop because the `Test(n, f)` inside the static `opCall` is interpreted as a recursive call to that sam