Re: How to specify an exact template?

2021-01-16 Thread solidstate1991 via Digitalmars-d-learn
Well, it's quite complicated to do. I have to manually unwrap 
each and all function template, then pray for the compile-time 
optimization gods that they'll be inlined.


This is so annoying, that I might issue a DIP...


Re: How to specify an exact template?

2021-01-16 Thread Tove via Digitalmars-d-learn
On Saturday, 16 January 2021 at 15:41:38 UTC, solidstate1991 
wrote:

On Saturday, 16 January 2021 at 14:18:55 UTC, Tove wrote:
probably you can use 
https://dlang.org/spec/traits.html#getOverloads


I don't know how to use it with functions outside of 
structs/classes.


void foo() {}
void foo(string i) {}

static foreach(overload; __traits(getOverloads, 
mixin(__MODULE__), "foo"))

pragma(msg, typeof(overload));


Re: How to specify an exact template?

2021-01-16 Thread solidstate1991 via Digitalmars-d-learn

On Saturday, 16 January 2021 at 14:18:55 UTC, Tove wrote:
probably you can use 
https://dlang.org/spec/traits.html#getOverloads


I don't know how to use it with functions outside of 
structs/classes.


Re: How to specify an exact template?

2021-01-16 Thread Tove via Digitalmars-d-learn
On Saturday, 16 January 2021 at 14:14:57 UTC, solidstate1991 
wrote:
On Saturday, 16 January 2021 at 14:13:29 UTC, solidstate1991 
wrote:

Here's the following line, among many others:

return !(ubyte);

This generates an error, as this function template matches two 
instances, but currently I don't know how to choose the one I 
need, other than write a local function, that looks a bit ugly.


Forgot to link the code example: 
https://github.com/ZILtoid1991/pixelperfectengine/blob/master/pixeperfectengine/src/PixelPerfectEngine/graphics/layers/base.d#L143


probably you can use 
https://dlang.org/spec/traits.html#getOverloads




Re: How to specify an exact template?

2021-01-16 Thread solidstate1991 via Digitalmars-d-learn
On Saturday, 16 January 2021 at 14:13:29 UTC, solidstate1991 
wrote:

Here's the following line, among many others:

return !(ubyte);

This generates an error, as this function template matches two 
instances, but currently I don't know how to choose the one I 
need, other than write a local function, that looks a bit ugly.


Forgot to link the code example: 
https://github.com/ZILtoid1991/pixelperfectengine/blob/master/pixeperfectengine/src/PixelPerfectEngine/graphics/layers/base.d#L143