On Monday 18 July 2011 09:35:17 Lars T. Kyllingstad wrote: > On Sun, 17 Jul 2011 17:43:42 -0400, bearophile wrote: > > Lars T. Kyllingstad: > >> I believe I have covered most of your requests, with a few exceptions: > > compatibleStrings is a template still. > > I know. Sorry, forgot to mention that. For now, I'd like to keep it the > way it is. I can't find any precedence in Phobos for turning these kinds > of tests into CTFEable functions, and if compatibleStrings were to end up > in std.traits, for instance, it would stand out as being different from > everything else in there. If it is decided that it is better to write > these tests as ordinary functions, that should probably be done > throughout Phobos.
And it _should_ be a template. All of the stuff like that are templates. And I'm not even sure that it _can_ be a function. And even if it can, what would we gain by making it a function anyway? It's operating on types. It's of no use at runtime. It's a perfect candidate for an eponymous template. std.traits, std.range, etc. do this sort of thing in pretty much exactly the same way. There may be a cleaner way to write it then it currently is, but using an eponymous template like that is the correct thing to do. - Jonathan M Davis
