April 14, 2015 String Index Support for IndexedBy | ||||
---|---|---|---|---|
| ||||
I have implemented a type constructor [Ii]ndexedBy at https://github.com/nordlow/justd/blob/master/typecons_ex.d#L97 restricted by https://github.com/nordlow/justd/blob/master/typecons_ex.d#L78 See unittests below for usage. I would now like to extend this to enable a variant usage as auto xs = x.indexedBy!"I" I want this to trigger a mixin that defines a struct I inside the struct IndexedBy. But I don't know how to change the definitions of - isIndexableBy - [iI]ndexedBy in order for this work. I started by replace all template arguments I with alias I which I believe is the way to go to make it possible for I to either a type or a CT-string. But then I get lots of strange compiler messages that I can't figure out what to do with. Further is my mixin attempt at https://github.com/nordlow/justd/blob/master/typecons_ex.d#L99 in the right direction. If so do I have to turn IndexedBy into a template mixin? Could someone please help me out here? |
April 15, 2015 Re: String Index Support for IndexedBy | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Tuesday, 14 April 2015 at 19:38:10 UTC, Nordlöw wrote: > I have implemented a type constructor [Ii]ndexedBy at > > https://github.com/nordlow/justd/blob/master/typecons_ex.d#L97 > > restricted by > > https://github.com/nordlow/justd/blob/master/typecons_ex.d#L78 > > See unittests below for usage. > > I would now like to extend this to enable a variant usage as > > auto xs = x.indexedBy!"I" > > I want this to trigger a mixin that defines a > > struct I > > inside the struct IndexedBy. > > But I don't know how to change the definitions of > > - isIndexableBy > - [iI]ndexedBy > > in order for this work. > > I started by replace all template arguments > > I > > with > > alias I > > which I believe is the way to go to make it possible for I to either a type or a CT-string. But then I get lots of strange compiler messages that I can't figure out what to do with. > > Further is my mixin attempt at > > https://github.com/nordlow/justd/blob/master/typecons_ex.d#L99 > > in the right direction. If so do I have to turn IndexedBy into a template mixin? > > Could someone please help me out here? I managed to make it all work at https://github.com/nordlow/justd/blob/master/typecons_ex.d#L114 by using two separate definitions of [Ii]ndexedBy for the cases where I is either a string literal or a type. This is not ideal though because it causes code duplication in the two definitions of IndexedBy. Can anybody come up with an alternate definition of [Ii]ndexedBy that doesn't required two separated definitions? |
Copyright © 1999-2021 by the D Language Foundation