Re: Modified version of l_dispatcher.h -- please try it.
Scott Dattalo <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <[email protected]> |
al davis wrote: > On Wednesday 07 March 2007 11:47, Scott Dattalo wrote: > >> You can achieve static allocation and control the order which >> objects are allocated. >> > > There is no way that is absolutely consistent and portable. > That is the issue. > Maybe I'm missing something, but in gpsim I have statically allocated objects, C++, dynamically loadable modules, and support Linux, Windows, BSD and (at one point) Solaris. However, I typically don't statically link everything. >> In gpsim (the gnupic simulator for Microchip PIC >> microcontrollers) I just switched over the implementation of >> the symbol tables from STL list containers to STL map >> containers. I don't use map's size method, however I never >> add null objects to the symbol table either. Why would a >> failed map lookup end adding a null object to the map? >> > > Do you ever use operator[] to index your map? It returns an > lvalue, which adds a default object for a failed lookup. It > doesn't hurt anything. > Thanks for pointing this out. Yes I do use operator[], but I think I use it in a way in which a default object is not created. For example, instead of using operator[] to index into the map to search for a particular key, I use the find() method. This returns an iterator pair that can be compared against end(). I'm assuming find() does not create a superfluous default object in the map. When adding to the map, I do use operator[]. Scott