$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Jonathan Oulds (jonathan.oulds_at_[hidden])
Date: 2004-08-10 09:47:42
Timothy Perrigo wrote:
...
> I need to create a kind of registry to keep track of 
> instances of variables of different types (actually, several of these 
> registries, representing different system states); variables of a type 
> would be identified by an unique (integer) id.  In other words, the 
> variables within a particular registry represent the state of the system 
> at a given point in time, so although each registry would have variables 
> of the same types and ids, the values of the variables in different 
> registries may be different.  If the variables were all of the same 
> type, a simple map would work.  What I would like is a way of asking 
> this registry for a variable of a specified type and id, and get back 
> the appropriate instance (of the appropriate type).  I.e., something 
> like the following would be ideal:
> 
> MyType mt = registry.get<MyType>(my_id);
> 
why not create a templated registry? surely that would solve your 
problem if each registry could only hold a particular type then instead 
of typing
MyType mt = registry.get<MyType>(my_id);
you could type:
MyType mt = registry<MyType>.get(my_id);
but if you want to have lots of registries of type MyType why not have a 
static factory function within each registry class, lets say we want a 
particular registry based upon a integer id, then you could write:
MyType mt = registry<MyType>::GetInstance(5).get(my_id);
jonathan oulds