On Saturday, 23 November 2019 at 16:38:30 UTC, Ola Fosheim Grøstad wrote:
Ok, thanks, that is worth exploring. Right now the objects I am looking at are pure values, so that might be a bit verbose though.

In many cases, you can just do

auto c = scoped!Class(args, to, ctor);

and it mostly works. The only time you need to explicitly mention the interface line is when passing to a template by value (since then it will try to copy the scoped instance and that is a compile error).

So you can frequently do it less verbosely than I did there.

I also guess LTO happens too late in the process to carry over information about whether virtuals have been specialised or not.

I don't know really. Maybe I used the wrong argument to ldc too to enable it.

Yes, I am starting with structs, because pure values ought to be easier on the optimizer. So one should be able to go to a fairly high abstraction level and still get good performance.

Yeah, just I expect classes will win overall :) We'll see, I suppose.

Reply via email to