core.traits?

Nick Treleaven nick at geany.org
Tue Jan 8 18:59:01 UTC 2019


On Monday, 7 January 2019 at 21:54:15 UTC, Steven Schveighoffer 
wrote:
> std.internal.traits contains pieces of std.meta -- a quick look 
> shows it has AliasSeq (but under the name TypeTuple),

That's fine internally, but std.traits still uses *Tuple for ten 
public templates:
https://github.com/dlang/phobos/pull/6227

If we move any of those to core.traits, please can we finally fix 
the names.

> traits and meta are really part of the language,

Some in std.traits are tightly coupled to the language, e.g. 
isInteger. Some are utility templates, e.g. ConstOf, 
CopyConstness. I think only the former should be public in 
druntime. Select and select aren't even traits, they should have 
been in std.meta.

Except perhaps AliasSeq, (Alias, Instantiate) all of std.meta 
seems to be utility templates rather than language feature 
wrappers.



More information about the Digitalmars-d mailing list