digitalmars.D.learn - Tuples and compile-time assigned properties
- Joseph Rushton Wakeling (24/24) Sep 19 2013 Hello all,
Hello all, This is a query that relates to my Dgraph library: https://github.com/WebDrake/Dgraph When simulating graphs/networks, very often you want the vertices or edges to have certain properties. For example, the edges may have weights, or the vertices may be coloured. The current implementation doesn't allow for this, and I'm trying to find an appropriate solution to allow at compile time to specify the various properties. The thought that's currently running through my head is to do this with Tuples where the variable names are all specified, e.g. alias EdgeProperties = Tuple!(double, "weight"); alias VertexProperties = Tuple!(size_t, "colour", string, "name"); So then, you'd be able to extract the list of variable names and types at compile time and use them to create the underlying data structures required; and similarly you'd be able to create a set of public interfaces that gives you access to those members. With that in mind, there are a number of potential issues that arise: (i) is there a compile-time constraint via which I can insist that every member of the tuple must be named? (ii) is there an easy way to extract all the names of tuple members as an array of strings? Can anyone advise? Thanks & best wishes, -- Joe
Sep 19 2013