
----- Original Message ----- From: "Tom Brinkman" <reportbase@yahoo.com> To: <boost@lists.boost.org> Sent: Monday, March 29, 2004 6:25 AM Subject: [boost] Index_set observations
Comments: Again, congratulations on this library. I see it, combined with the serialization library , as having the potential to eliminate the need for relational databases in c++ applications.
What's wrong with relational databases?
Granted, if the development staff consists of DBAs and Java developers they would not agree to such a thing. However, if you have an application that consists of just c++ code, you could make the argument that relational databases are no longer needed. That would be a great thing, as relational datbases and sql are not c++ friendly.
Here I agree. I hope that designs like indexed_set<> and RTL will lower the impedance mismatch, too.
I spent many years writing c++ applications that were simply wrappers over relational datbases designed by DBAs. I've always thought that there had to be a better way. It would appear that you have done just that with this library.
Questions: 1) When you add a record to an indexed_set, and it violates the index definition in some way, could you throw an exception, instead of simply replacing the original record?
As far as I understand, insert() returns a std::pair<iterator, bool>. The boolean indicates, if the insertion was successful. insert() doesn't replace an existing record.
2) Is there support for mult-key unique indicies. I read in the documenation that you can have more than one unique indice in the definition, but they are unique individually. Question: Can you combine two or more of those unique indice to create a multi-key unique indice.
If you create an indexed_set of thingies typedef is::indexed_set< thingy, is::index_list< is::unique<is::tag<pk_tag>, is::identity<const thingy>, pk_comparer>
thingies;
where pk_comparer implements an specialized comparer based on lex_compare, will do the job (see example/composite_compares.cpp for an example). Maybe this construction could be simplified. Best, Joerg