On 9/5/11 2:14 AM, kenji hara wrote:
Shin Fujishiro's std.meta has the features.
https://github.com/sinfu/phobos-sandbox
Oh, wow, so now (largely) the same functionality has been implemented at
least three times, in Shin Fujishiro's std.meta, in Philippe Sigaud's
dranges, and by myself – I guess we should really do something about
this to avoid reinventing the wheel over and over again.
Luckily, all the code is Boost-licensed, so I think I will just throw
the best ideas from each implementation into a big bowl (for example, I
really like Shin's approach to emulating template literals with strings)
and cook up a module fit for submission to the Phobos review process.
Thus, it would be great if you could let me know what you would like to
see as far as metaprogramming is concerned, besides common higher-order
templates like Map/Reduce/Filter, general helpers like
Compose/PApply/Switch/Iota and the low-level helpers for working around
quirks in the language (think checking identity for arbitrary
symbols/types/ct values, being able to alias both types and values, …).
High on my list of not yet implemented ideas is wrapping __traits:
templates obviously won't be able to handle some of the strange
semantics e.g. of the isArithmetic family of traits, but the »raw«
__traits interface suffers from impedance mismatch with higher-order
templates.
David