
David Abrahams wrote:
- C++ is a static language, let's leave these niceties to more dynamic languages. I have found myself weeks hunting a bug in the http code because i thought that it would be cool if i could access http properties using a map instead of proper accessor functions. I spent weeks hunting persistent connection bug. It was a simple typo inside a http property string that would have been caught immediately by the compiler if i were using functions or costants [1].
Right. If you need to do dynamic polymorphism, add a layer of type erasure in a separate component. I think that's what you meant by "external polymorphism," but that's not a great term because it doesn't distinguish the static from the dynamic.
Yes, I meant type erasure. I used the term "external polymorphism pattern" because it is described with this name in the ACE patterns documentation.
That's a very convincing argument.
I don't know much about networking, but from what I've heard here I like your design instincts very much. I'll try to look at your docs. Is this in the same design space as a "sockets library?"
Yes, it is, mostly. It doesn't really have a socket concept and it also deals with disk i/o, thus it is not completelly network centric. -- Giovanni P. Deretta