программистское
Oct. 28th, 2010 12:48 amПорадовал, хоть и вогнал в шок, компилятор gcc.
Я умудрился написать вызов pure virtual function из-под конструктора (причем, кажется, практически в той же ситуации, что и пару лет назад на другой работе). На этот раз не то чтоб совсем ступил, это было скорее следствие другой ошибки.
Сюрпризом оказалось то, что код прекрасно себе работал на двух платформах, и даже QA не имел никаких претензий - вызывалась ровно та функция, что мне и была нужна. Отловил же баг мой коллега, скомпилировавший проект без оптимизатора.
Чисто по человечески я авторов gcc прекрасно понимаю - это же совершенный маразм тупо переприсваивать указатель на виртуальную таблицу в процессе конструирования объекта. Как бы, работать надо, а не указатели переприсваивать почем зря.
Я умудрился написать вызов pure virtual function из-под конструктора (причем, кажется, практически в той же ситуации, что и пару лет назад на другой работе). На этот раз не то чтоб совсем ступил, это было скорее следствие другой ошибки.
Сюрпризом оказалось то, что код прекрасно себе работал на двух платформах, и даже QA не имел никаких претензий - вызывалась ровно та функция, что мне и была нужна. Отловил же баг мой коллега, скомпилировавший проект без оптимизатора.
Чисто по человечески я авторов gcc прекрасно понимаю - это же совершенный маразм тупо переприсваивать указатель на виртуальную таблицу в процессе конструирования объекта. Как бы, работать надо, а не указатели переприсваивать почем зря.