• Добро пожаловать на Черная дыра.
 

OFF C++: Очень сильно странный код :)

Автор Feol, 20.04.2011 16:32:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ZOOR

2 LRV75 - А что это такое?

А вот тоже кажись в тему



Я зуб даю за то что в первом пуске Ангары с Восточного полетит ГВМ Пингвина. © Старый
Если болит сердце за народные деньги - можно пойти в депутаты. © Neru - Старому

Feol

Цитировать
Цитировать
ЦитироватьА с чего вы вообще взяли, что нельзя скомпилировать неправильный текст?

 Его можно скомпилировать точно так же как правильный, только неизвестно что получится.
а это вы с чего взяли?

вообще то теоретически считается что синтаксические ошибки отлавливает компилятор
иначе можно такого накомпилировать, что сто дебаггеров не разберутся  :D
А можно вообще не реагировать на ошибки и "это самое накомпилировать", - как угодно, так и можно сделать. :smile:
Собственно, значительная часть истории развития языков программирования как раз и посвящена тому, чтобы дать возможность компилятору на основании анализа текста гарантированно выявить максимум ошибок. А тут в системе 2010 года полную чушь пишешь, успешно компилируется, и выясняется, что, в общем-то, по стандарту и так можно... и по-другому можно и вообще по-любому в этой ситуации можно.. Бред, ИМХО.
Дичайший случай! Дичайший!

Feol

ЦитироватьКоль уж такая замечательная тема открыта, вопрос, кто нибудь WPF пользовал?
Работал 4 месяца в фирме, где при мне уволился последний человек, который у них это использовал :). Говорил, что главный признак квалификации по этой теме - знание тьмы особенностей поведения и багообразных фич этой библиотеки. По интонации, сложилось мнение о том, что не очень-то удачная штука. Но сам не пробовал - через 4 месяца вернулся из той фирмы на прежнюю, где это не нужно и хорошо, что так :)
Дичайший случай! Дичайший!

Антип Од

ЦитироватьКоль уж такая замечательная тема открыта, вопрос, кто нибудь WPF пользовал?

Это ужос глючный и кривой. Рекомендуется только тем, кто пишет софт для отмороженных любителей полупрозрачных разноцветных анимированных кнопочек. В этом случае затраты на борьбу с WPF будут сопоставимы с затратами на реализацию того же самого своими силами.

Всем, кто пишет софт для чего-то практически полезного WPF категорически противопоказан.

По теме если... Вот интересно, если этот код запустить... Че, правда чужой деструктор вызывается?
Служил Гаврила космонавтом
Гаврила космос покорял.

vlad7308

ЦитироватьПо теме если... Вот интересно, если этот код запустить... Че, правда чужой деструктор вызывается?
почему чужой?
вызывается как раз правильный - this то в деструктор передается неявно, и передается именно тот, который надо, то есть того объекта, через который вызывается деструктор

разговор про то, что вроде как синтаксис вызова деструктора такой в принципе не соответствует стандарту
это оценочное суждение

Feol

Я сейчас бы (после обсуждения и на специализированном форуме) сказал так - приведённый текст не соответствует здравому смыслу. Ибо да, навевает на мысль о вызове чужого деструктора. Но он, оказывается, не противоречит, в общем-то, записи в стандарте :). Такое чувство, что при принятии стандарта был какой-то очень важный компилятор :), где была такая бажка, и, чтобы него не обижать :), решили записать, что, мол, допускается при такой записи неопределённое поведение программы :)
Дичайший случай! Дичайший!

boez

Стоп, о каком вообще вызове деструктора идет речь??? Имя деструктора есть имя класса, с добавленной спереди тильдой! А в программе вызывается неизвестно что! Таких членов - Obj1 и Obj2 - вообще нет в классе! Это просто имена локальных переменных, они вообще с именами членов никак пересекаться не должны... В стандарте же говорится совсем о другом:

class CClass1 {
...
}

class CClass2 {
...
}

...

CClass1 var1;

var1.~CClass2();

Сторонний

ЦитироватьСобственно, значительная часть истории развития языков программирования как раз и посвящена тому, чтобы дать возможность компилятору на основании анализа текста гарантированно выявить максимум ошибок. А тут в системе 2010 года полную чушь пишешь, успешно компилируется, и выясняется, что, в общем-то, по стандарту и так можно... и по-другому можно и вообще по-любому в этой ситуации можно.. Бред, ИМХО.
Совершенно верно, задача в том, чтобы НЕ компилировать неправильную программу, а не в том, чтобы получить какой-то результат на основе неправильного текста. :smile:

 Я уже не помню в каком именно древнем компиляторе, наверно в PL-1, можно было задавать "уровень ошибки", которая допускается при компиляции.
"Multiscitia non dat intellectum"

Parf

ЦитироватьЯ уже не помню в каком именно древнем компиляторе, наверно в PL-1, можно было задавать "уровень ошибки", которая допускается при компиляции.

Да и в современных компиляторах это можно делать. Но самого слабого уровня, обычно, бывает достаточно. Более сильные уровни - трактовка предупреждений как ошибок, то есть исключение сомнительных мест в коде.
Россия, вверх!

Feol

Я всегда в MSVC предпочитаю на 4 уровне предупреждений работать. Много, чего видит. Но не включаю трактовать их, как ошибки. И исключаю явно предупреждение 4996 в настройках :)
Дичайший случай! Дичайший!