
At Thursday 2004-02-26 09:13, you wrote:
-----Original Message----- From: christian.engstrom@glindra.org [mailto:christian.engstrom@glindra.org] Sent: Thursday, February 26, 2004 4:40 PM To: boost@lists.boost.org Subject: [boost] Proxy indirect container adaptor: 4 claims
--Is there a way to define a package for indirect containers, so that one can take a program that uses a direct container, and convert it to using an indirect container just by changing the definition of the container type?
You could define a container adaptor that takes a container, and modifies the begin()/end() iterators to return indirect iterators to the original begin()/end(). Then instead of: typedef some_container container_type; you would have: typedef adaptor<some_container> container_type;
--Would it be any useful to be able to switch containers like that?
The problem here is of course that "usefulness" is very much in the eye of the beholder, so all that I can say with certainty is that I personally would find it quite useful, and that I don't see why other people as well shouldn't sometimes find themselves in situations when they would want to change container types easily. After all, isn't one of the great benefits of the STL containers that they have (reasonably) uniform interfaces, so that it's easy to switch between the different container types, often by just changing a typedef?
You might want to read "Beware the Illusion of container-independent code", by Scott Meyers in his book: http://www.awprofessional.com/isapi/content/images/0201749629/items/item2-2.... The full book is at: http://www.awprofessional.com/catalog/product.asp?product_id={AA4735AF-4407-4011-B7D3-0C924DFA675D%7d
I've read it and am considering writing an article explaining that although he's correct, part of the problem lies directly with "the Committee". Scott writes about how things _are_, not as they could(should?) be. Many of the restrictions are completely artificial. I've said it before, and I'll continue saying it. One of the big problems of the "C heritage" is that too many people think that syntax implies implementation.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"