allSatisfy could use some constraints

Andrej Mitrovic andrej.mitrovich at gmail.com
Thu Sep 22 15:36:00 PDT 2011


import std.string;
import std.traits;
import std.typetuple;

void main()
{
    if (allSatisfy!(isNumeric, int, short))
    {
    }
}

D:\DMD\dmd2\windows\bin\..\..\src\phobos\std\typetuple.d(576): Error:
template instance F is not a template declaration, it is a overloadset

This took a good while to figure out what went wrong. std.traits
defines isNumeric, but std.string defines it too. allSatisfy takes an
alias type parameter with no constraints, so maybe some constraints
could be added so it doesn't get instantiated with regular functions
but only template functions?


More information about the Digitalmars-d-learn mailing list