Есть примерно такая конструкция в h-файле.
template <class T> class TMyTemplate
{
protected:
T* m_pObject;
public:
// some functions
virtual void MyFunction() { some code is here;}
};
class CMyClass;
typedef TMyTemplate<CMyClass> CMyTemplateClass;
Теперь есть некаяя dll, которая создает объект pTest типа CMyTemplateClass, и передает его в приложение.
Приложение вызывает pTest->MyFunction().
По логике вещей, в этой ситуации вызов MyFunction должен быть виртуальным и "пойти" работать внутри DLL.
Собственно вопрос: какие-то пункты стандарта регламентируют соответствующее поведение, или оно остается на усмотрение авторов компилятора?