On 2017-08-25 08:12, Nordlöw wrote:
Thanks!
Your advice led to the following sample solution
import std.meta : aliasSeqOf;
immutable englishIndefiniteArticles = [`a`, `an`];
bool isEnglishIndefiniteArticle(S)(S s)
{
return cast(bool)s.among!(aliasSeqOf!englishIndefiniteArticles);
}
Is this the preferred way?
Since you're converting the returned index to a bool, can't you use
"canFind" instead?
immutable englishIndefiniteArticles = [`a`, `an`];
bool isEnglishIndefiniteArticle(S)(S s)
{
return englishIndefiniteArticles.canFind(s);
}
Could a template-parameter overload to `among` (perhaps calling it
something slighty different) be defined that takes an immutable array as
argument to prevent the conversion to the `AliasSeq` prior to the call?
I guess. Currently none of the existing overloads take an array,
immutable or otherwise. They expect the values to be give as separate
arguments.
--
/Jacob Carlborg