我花了一段时间才弄清楚,但这里有一个可能解决您的问题的方法:
module main;
import std.stdio;
int main(string[] argv)
{
bool test1PASS = func(1,2,3,4,5.5, true);
//bool test2CTE = func(1,2,3,4,5, true, "CRAP");
bool test3PASS = func("CRAP", "3", "true");
//bool test4CTE = func("CRAP", "3", "true", 42, true, 6.5);
return 0;
}
bool func(NOSTRINGS...)(NOSTRINGS x)
if ({foreach(t; NOSTRINGS) if (is(t == string)) return false; return true; }()) {
// code here ...
return true;
}
bool func(ONLYSTRINGS...)(ONLYSTRINGS x)
if ({foreach(t; ONLYSTRINGS) if (!is(t == string)) return false; return true; }()) {
// code here ...
return true;
}