Re[2]: Я просто в шоке
От: dronord  
Дата: 23.10.08 10:53
Оценка:
B>Я просто в шоке — этот вопрос обсуждается практически каждый месяц, и все равно всегда находятся люди, гнотовые спорить по этому поводу

Забыл сказать, что перед тем, как создать тему, воспользовался поиском. Ничего не нашел.
Догадывался, что с этой проблемой много сталкивались.
Re[5]: Я просто в шоке
От: Erop Россия  
Дата: 23.10.08 12:08
Оценка:
Здравствуйте, Bell, Вы писали:

E>>Ну, если тебе плевать на UB, и деструкторы тривиальные, то удастся конечно, на большинстве реализаций...

E>>В этом смысле ситуация такая же, как с уалением одного объекта, без виртуального деструктора.

B>Можешь привести пример такой реализации?

B>Я до сих пор встречал только один случай, где массив наследников корректно удалялся через указатель на базу (здесь
Автор:
Дата: 30.11.05
), но там деструктор был виртуальный.


А что, есть реализации, где
struct S1 { char F1; }
struct S2 : S1 { char F1[100]; };
S1* p = new S2[100];
delete [] p;
работает некорректно?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Я просто в шоке
От: elcste  
Дата: 23.10.08 12:34
Оценка:
Здравствуйте, Erop, Вы писали:

E>А что, есть реализации, где
E>struct S1 { char F1; }
E>struct S2 : S1 { char F1[100]; };
E>S1* p = new S2[100];
E>delete [] p;
работает некорректно?


Собственно, я не знаю реализаций, где этот код откомпилируется. А по существу: да, есть, вот.
Re[7]: Я просто в шоке
От: Erop Россия  
Дата: 23.10.08 16:25
Оценка:
Здравствуйте, elcste, Вы писали:

E>Собственно, я не знаю реализаций, где этот код откомпилируется.

Ты про точку с запятой после struct S1 { char F1; }? Это скучно.

А по существу: да, есть, вот.
E>А по существу

Network Access Message: The website cannot be found

ссылка чего-то не работает.

Не расскажешь что там было написано.
На всяк. случай -- MSVC от 6 до 2003 вроде как кушают и не чихают...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Я просто в шоке
От: Bell Россия  
Дата: 24.10.08 06:28
Оценка:
Здравствуйте, Erop, Вы писали:

E>>>деструкторы тривиальные


E>А что, есть реализации, где
E>struct S1 { char F1; }
E>struct S2 : S1 { char F1[100]; };
E>S1* p = new S2[100];
E>delete [] p;
работает некорректно?


Осознал, согласен с "большинством реализаций"
Любите книгу — источник знаний (с) М.Горький
Re[8]: Я просто в шоке
От: elcste  
Дата: 24.10.08 08:55
Оценка:
Здравствуйте, Erop, Вы писали:

E>А по существу: да, есть, вот.

E>>А по существу

Network Access Message: The website cannot be found

ссылка чего-то не работает.

E>Не расскажешь что там было написано.

Да, сегодня лежит. Там on-line компилятор и виртуальная машина, которая диагностирует ошибку выполнения этого кода.

Виртуальная машина — вполне себе implementation (в понимании стандарта).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.