On Tuesday, 6 July 2021 at 10:06:11 UTC, Jack Applegame wrote:
Here's another way using ``` std.typecons ```
```d
import std.stdio;
import std.typecons;
alias input = Typedef!int; //new code
struct Field {
void opAssign(int a) {
writefln("Field.opAssign(%s)", a);
}
}
struct R
On Tuesday, 6 July 2021 at 15:24:37 UTC, jfondren wrote:
3. https://run.dlang.io/is/AJM6Vg - hybrid where ClockAssign
has an unsafe pointer that the compiler complains about :/
4.
```d
import std.stdio;
struct Field {
void opAssign(int a) {
writefln("Field.opAssign(%s)", a);
}
On Tuesday, 6 July 2021 at 10:06:11 UTC, Jack Applegame wrote:
How to disable `register.clock = 10;` but allow
`register.clock(1) = 10;`?
I want to get a compilation error on `register.clock = 10;`
Some options:
1. return a temporary struct with an opIndex
```d
import std.stdio;
struct Fiel
On 7/6/21 9:27 AM, Jack Applegame wrote:
On Tuesday, 6 July 2021 at 12:33:20 UTC, Adam D Ruppe wrote:
The language always allows `a = b;` to be rewritten as `a(b);`.
And that's sad. It should happen for properties only.
Yes, I lament that there is no way to control how people call your
fun
On Tuesday, 6 July 2021 at 13:27:43 UTC, Jack Applegame wrote:
And that's sad. It should happen for properties only.
Totally disagree. This is one of my favorite D features.
On Tuesday, 6 July 2021 at 12:33:20 UTC, Adam D Ruppe wrote:
The language always allows `a = b;` to be rewritten as `a(b);`.
And that's sad. It should happen for properties only.
On Tuesday, 6 July 2021 at 10:06:11 UTC, Jack Applegame wrote:
How to disable `register.clock = 10;`
You don't. The language always allows `a = b;` to be rewritten as
`a(b);`.
Best you can do is use different types for the two arguments.
Maybe clock could take a struct Clock { int x; } or s
On Tuesday, 6 July 2021 at 10:25:28 UTC, Dennis wrote:
We're [still awaiting formal assessment on
dip1038](https://forum.dlang.org/thread/sojvxakgruzfvbigz...@forum.dlang.org), but if that gets in, you can mark `clock` or `Field` `@nodicard`. Otherwise I don't know of a way.
Yes, it would help.
On Tuesday, 6 July 2021 at 10:06:11 UTC, Jack Applegame wrote:
How to disable `register.clock = 10;` but allow
`register.clock(1) = 10;`?
I want to get a compilation error on `register.clock = 10;`
We're [still awaiting formal assessment on
dip1038](https://forum.dlang.org/thread/sojvxakgruzf
On Tuesday, 6 July 2021 at 10:24:45 UTC, drug wrote:
Something like using different types for arguments in
`Register.clock` and `Field.opAssign`?
I've been thinking about it. Unfortunately, this is not always
convenient.
06.07.2021 13:06, Jack Applegame пишет:
Code:
```d
import std.stdio;
struct Field {
void opAssign(int a) {
writefln("Field.opAssign(%s)", a);
}
}
struct Register {
Field clock(int a) {
writefln("Register.clock(%s)", a);
return Field();
}
}
void m
Code:
```d
import std.stdio;
struct Field {
void opAssign(int a) {
writefln("Field.opAssign(%s)", a);
}
}
struct Register {
Field clock(int a) {
writefln("Register.clock(%s)", a);
return Field();
}
}
void main() {
Register register;
register.cloc
12 matches
Mail list logo