On Thursday, 11 September 2025 at 11:47:40 UTC, Dennis wrote:
The trick that's used in druntime is putting the part that still needs to be checked for attributes inside an `if (false)` block, for example:

```d
private T moveImpl(T)(return scope ref T source)
{
// Properly infer safety from moveEmplaceImpl as the implementation below // might void-initialize pointers in result and hence needs to be @trusted
    if (false) moveEmplaceImpl(source, source);

    return trustedMoveImpl(source);
}
```

Well, that would work. Thank you for pointing it out. It's probably better to do it like this to avoid the potential for an unconditional cache miss (depending on how smart the compiler feels today):
```d
private T moveImpl(T)(return scope ref T source){
        if(true) return trustedMoveImpl(source);
        moveEmplaceImpl(source, source);
        assert(0);
}
```
It would still be nice to have a proper, intuitive way of doing this though. Hacks are great and all, but they are still hacks. One time I got my code to call into Swift code by writing inline assembly to match Swift's calling convention; but that was a hack, and I'm still excited that LDC has recently gained some degree of native Swift interoperability.
  • Placement new an... IchorDev via Digitalmars-d-learn
    • Re: Placeme... Dennis via Digitalmars-d-learn
      • Re: Pla... Paul Backus via Digitalmars-d-learn
        • Re:... IchorDev via Digitalmars-d-learn
      • Re: Pla... IchorDev via Digitalmars-d-learn
    • Re: Placeme... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
      • Re: Pla... IchorDev via Digitalmars-d-learn
        • Re:... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
          • ... IchorDev via Digitalmars-d-learn
            • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
              • ... IchorDev via Digitalmars-d-learn
                • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
                • ... IchorDev via Digitalmars-d-learn
            • ... Paul Backus via Digitalmars-d-learn
              • ... IchorDev via Digitalmars-d-learn

Reply via email to