Code: Select all
template <class M>
struct MB
{
void Print()
{
DoPrint();
}
virtual void DoPrint() = 0;
};
struct M : public MB<M>
{
void DoPrint()
{
printf("Here we go...\n");
}
};
Именно эта конструкция работает, но подобная - нет. Именно ту, на которой валится, приводить не хочу - там у MB ещё базы есть и параметры (ATLные). Если убрать вызов DoPrint, то всё нормально, а так выдаёт:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1794)
Я обычно привык, что эта ошибка бывает, если какую-нить пургу напишешь, а тут проде вполне нормальная конструкция, и главное полезная - не знаю прока, как это обойти? Предложения?[/quote]