On Saturday, 19 July 2014 at 17:40:01 UTC, Andrei Alexandrescu wrote:
On 7/19/14, 9:36 AM, Jakob Ovrum wrote:
On Saturday, 19 July 2014 at 06:13:10 UTC, Manu via Digitalmars-d wrote:
Anyway, does anybody know a nice tidy way to do it?

Unfortunately the only way to create perfect forwarding functions
completely generically is still using an ugly string mixin that
generates the forwarding function. A subset of forwarding functions can be created using templates and auto-ref, but of course a function
template has many disadvantages to a concrete function (virtual
functions being a good example).

How can this be encapsulated as a library artifact? -- Andrei

Since the key parts of the forwarding function - the parameter list and attribute list - are part of the signature, the entire function declaration has to be mixed in. That means the function body has to be provided as a string argument. This tends to cause some seriously unreadable code. It may be a lost cause but I'm hoping we can amend the language to avoid that.

Reply via email to