comp.lang.ada
 help / color / mirror / Atom feed
* Runtime type selection
@ 2009-10-11 16:41 xorque
  2009-10-11 17:02 ` Niklas Holsti
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: xorque @ 2009-10-11 16:41 UTC (permalink / raw)


Hello.

I'd like to develop a program that processes a graph. The contents of
the graph are a random selection of objects of different types (all
elements may be of the same type or may all be different - assuming
there are enough types defined). By 'type' in this case, I am
referring
to Ada types.

The basic problem is that I want to create an object of a type picked
at
random, at runtime. I'm not entirely sure what my options are here.

I could create a base tagged type and derive a set of types from that
base, selecting at random. I could use variant records. It seems that
in
either case, I'd need to create an enumeration type with a 1:1 mapping
between enumeration values and derived types.

Both of these solutions seem a little unwieldly. They also seem like
they'd end up making the program difficult to extend (I'd ideally just
like to derive a new type and have it automatically available to be
selected at random for the graph).

Any ideas would be appreciated. I appreciate the problem is a little
abstract...



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2009-10-13 16:02 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-11 16:41 Runtime type selection xorque
2009-10-11 17:02 ` Niklas Holsti
2009-10-11 17:15   ` xorque
2009-10-11 19:54     ` Niklas Holsti
2009-10-12  9:26       ` Georg Bauhaus
2009-10-12 12:02         ` xorque
2009-10-12 23:42       ` Randy Brukardt
2009-10-13  6:50         ` Niklas Holsti
2009-10-13  0:59       ` Adam Beneschan
2009-10-13  7:01         ` Niklas Holsti
2009-10-11 17:15 ` mockturtle
2009-10-11 20:06 ` Dmitry A. Kazakov
2009-10-13 10:45   ` Colin Paul Gloster
2009-10-13 10:17     ` Dmitry A. Kazakov
2009-10-13 15:11 ` xorque
2009-10-13 15:50   ` Dmitry A. Kazakov
2009-10-13 16:02     ` xorque

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox