On 2009-03-08 08:16:42 -0400, "Tim M" <[email protected]> said:
I remember you blogging about a way of compiling base classes with new methods and not needing to recompile the sub classes, I will read up on those genrics in C# and java later. If that doesn't work out, what if the compiler could check for all sub class functions within the same module and allowing a sort of limited virtual template functions, so no work through external libraries. I would prefer limited virtual over no virtual.
Well, if you add a way to dynamically insert methods into objects, as I was indeed proposing on my blog, the only missing step is to compile the template at first use and insert it into the virtual table. But that would require a compiler in the runtime and preservation of the template source and its related types (perhaps as bytecode).
What I was proposing in the post you quoted doesn't require anything special in the runtime or the language other than the ability to impose restrictions about what a template can do in a virtual function to make sure that, whatever the template arguments, it always emit the same code. That'd work for return values using the same constness as an argument; it'd also work for making return values being of the same class as an argument when your function expect a base class.
-- Michel Fortin [email protected] http://michelf.com/
