Actually, my comment was that template methods should be implemented in the header. I wasn't aware of any different behavior with virtual methods. But I do know that any method that actually uses the template parameter needs to be inlined in the header.

templates are incredibly difficult to implement for a compiler, which is why many languages (hrmm... Java) haven't done so. Even with C++, all compilers are not created equal. The sun compiler has serious problems. There are many flaky behaviors with templates, especially if you start throwing in other variables like DLLs or virtual methods.

So, expect to make some compromises.

Jeff