libfactory++ TODO list
======================

- exception handling
- consistent use of throw () in function decl/defn.
- make macro definitions not use global namespace.
- ponder something like a default type variable in the factory.
- make constructors/destructors store the type... this would allow for cool
  things with requests, e.g. just specifying the constructor, and the type is
  obtained from the factory. maybe this should be done via a template
  class_name.
- replace macros with some approach capable of dealing with commas-in-types
  (like s11n does).
- fix nomenclature. I should not be using _ and __ in names.
- fix prototype/copy construction. the type should be inferable from the
  prototype... maybe have to make this a templated function... then again,
  maybe it's needed for type safety.
- fix destruction with custom destructor. right now, one needs to know the
  type of the object one is destructing at compile-time if a custom destructor
  is to be used. then again, when do you need a custom destructor? this has to
  be pondered.
  
  Thinking:
  
    maybe template template arguments could be used to restrict builders to
    a single allocator?
    
  * maybe we provide a derived class of BuilderBase and move the allocation
    interface there? That seems like the cleanest approach, but it would do
    with custom destructors. or would it? i guess the alloc/dealloc functions
    could be statics. yeah, totally. that's the way to do it.
    
    maybe there is a way to associate the Builder instance with the
    object? Without additional space per object. mh. likely not possible.
    
    we could have the factory garbage-collect... no no no
    
    or switch to autoptr ... mh. that's rather intrusive
