Allowing arbitrary types for a function's argument and return type

Kagamin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Oct 22 11:54:32 PDT 2015


On Thursday, 22 October 2015 at 15:10:58 UTC, pineapple wrote:
> What does if(isIntegral!T) do? It looks like it would verify 
> that the template type is a discrete number?

It doesn't verify, but filters: you can have several templates 
with the same name, when filter doesn't match, compiler tries 
another template. Maybe you can write collatzStep for string 
type, then this code wouldn't compile, because it doesn't make 
sense for strings. Remove the filter and the template will always 
compile with whatever it's supplied including BigNum as long as 
the code makes sense.


More information about the Digitalmars-d-learn mailing list