On 2015-07-24 09:16, WhatMeWorry wrote:
Looking at the online documentation, it says:
__traits "are extensions to the language to enable programs, at compile
time, to get at information internal to the compiler."
std.traits are "Templates which extract information about types and
symbols at compile time.
Do they both basically do the same thing? They both have isIntegral,
but there is a lot of functionality that they don't share.
I guess one naive question would be, why not just have all the __traits
functionality rolled into std.traits? Or vice versa?
A couple of reasons:
* std.traits existed before __traits
* In some cases std.traits might provide a more user friendly interface
than __traits. I think that __traits is not intended to be used directly
by users. Rather it should server as a building block for a library
implementation. That's why it has double underscore prefix.
* It's not possible to implement everything that __traits does in a
library solution, i.e. std.traits
--
/Jacob Carlborg