Re[27]: catch { throw; }
От: merk Россия  
Дата: 26.06.08 10:46
Оценка: -1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, merk, Вы писали:


VE>>>Здравствуйте, merk, Вы писали:



M>>..щас будет дискуссия о добре и зле, поскольку четкого ответа на этот вопрос нет.


А>Как раз есть, просто вы этот ответ упорно не хотите принимать. У меня складывается впечатление, что у вас совершенно не правильное представление о том, для чего в C++ предназначены исключения. C++ exceptions — это лишь средство для сообщения об ошибках, а не о каких то исключительных ситуациях. Это замена кодам возврата. Произошла ошибка в программе — сгенерировали исключение и всё. Зачем усложнять? О том, что считать ошибкой, а что нет, можно почитать например у Саттера (да и Мейерс об этом вроде писАл тоже).

А>Внутри одно проекта (или хотябы модуля) необходимо определить какой подход к обработке ошибок использовать: основаный на исключениях либо на кодах возврата и строго его придерживаться. А что касается спора по поводу использования кодов возврата либо исключений — дык он уже давно завершился (не в пользу кодов возврата).


то есть читаем это
http://valera.asf.ru/cpp/book/c11.shtml
и категорически не соглашаемся?
там перечислены характерные признаки для исключительных ситуаций. они названы аномальными, и фактически неустранимыми.
несоглашаться — ваше право.
"дык давно завершившийся спор..." в какой-нить институтской курилке, вообще не аргумент.
Re[28]: catch { throw; }
От: Erop Россия  
Дата: 26.06.08 11:08
Оценка:
Здравствуйте, merk, Вы писали:

M>не парьтесь. спор давно окончен. я уже привел ссылку на учебник, с которым полностью согласен.

M>если мои высказывания ему противоречат, то они считаются несостоятельными.

Не, ну тогда да, с тобой действительно не о чем разговаривать. Лчше тот учебник почитать. Хотя он мне, например, не кажется идеалом...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[28]: Ямщик! Не ГОНИ!!!
От: Erop Россия  
Дата: 26.06.08 11:09
Оценка: +1 :)
Здравствуйте, merk, Вы писали:

M>"дык давно завершившийся спор..." в какой-нить институтской курилке, вообще не аргумент.

Вне всяких сомнений гужевой транспорт рулит, а ДВС используется так часто совершенно неоправданно?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[28]: catch { throw; }
От: Аноним  
Дата: 26.06.08 11:10
Оценка: +1 :)
Здравствуйте, merk, Вы писали:

M>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, merk, Вы писали:


VE>>>>Здравствуйте, merk, Вы писали:



M>>>..щас будет дискуссия о добре и зле, поскольку четкого ответа на этот вопрос нет.


А>>Как раз есть, просто вы этот ответ упорно не хотите принимать. У меня складывается впечатление, что у вас совершенно не правильное представление о том, для чего в C++ предназначены исключения. C++ exceptions — это лишь средство для сообщения об ошибках, а не о каких то исключительных ситуациях. Это замена кодам возврата. Произошла ошибка в программе — сгенерировали исключение и всё. Зачем усложнять? О том, что считать ошибкой, а что нет, можно почитать например у Саттера (да и Мейерс об этом вроде писАл тоже).

А>>Внутри одно проекта (или хотябы модуля) необходимо определить какой подход к обработке ошибок использовать: основаный на исключениях либо на кодах возврата и строго его придерживаться. А что касается спора по поводу использования кодов возврата либо исключений — дык он уже давно завершился (не в пользу кодов возврата).


M>то есть читаем это

M>http://valera.asf.ru/cpp/book/c11.shtml
M>и категорически не соглашаемся?

"C++ для начинающих"?
Читаем Саттера, Александреску, Мейерса и переходим на следующий уровень


M>"дык давно завершившийся спор..." в какой-нить институтской курилке, вообще не аргумент.


Google вам в помощь!


P.S. Почему в этом вопросе с вами здесь никто не соглашается?
Re[29]: catch { throw; }
От: merk Россия  
Дата: 26.06.08 11:42
Оценка: -1 :)))
А>"C++ для начинающих"?
А>Читаем Саттера, Александреску, Мейерса и переходим на следующий уровень
??? не я давал название учебнику.
уровень его вполне достойный. на западе книжки типа...для чайников — традиционный коммерческий ход, для привлечения аудитории. и порой какая-нить ..."для профессионалов" куда бестолковей.
аргумент не принимается.
дайте заодно ссцылу не на маркса,энгельса,чаушеску, а на конкретную толковость, где ваша точка зрения не изложена столь сумбурно. я почитаю, почему нет?

А>P.S. Почему в этом вопросе с вами здесь никто не соглашается?

никто, это кто? даже если сам страуструп со мной не согласился, это не значит еще — никто.
Re[30]: catch { throw; }
От: Erop Россия  
Дата: 26.06.08 11:50
Оценка: +1 :)
Здравствуйте, merk, Вы писали:

А>>Читаем Саттера, Александреску, Мейерса и переходим на следующий уровень

M>??? не я давал название учебнику.
M>уровень его вполне достойный. на западе книжки типа...для чайников — традиционный коммерческий ход, для привлечения аудитории. и порой какая-нить ..."для профессионалов" куда бестолковей.
Не, ну то есть тебе он кажется авторитетнее Саттера, Александреску и Мейерса со Страуструпом?
УВАЖАЮ!!!

А>>P.S. Почему в этом вопросе с вами здесь никто не соглашается?

M>никто, это кто? даже если сам страуструп со мной не согласился, это не значит еще — никто.
Ну а кто таки соглашается?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: Что Вам мешает в С++?
От: WolfHound  
Дата: 26.06.08 11:55
Оценка: 1 (1) +1
Здравствуйте, Alexander G, Вы писали:

AG>Не то чтобы мне сильно хотелось чтобы std::function была частью языка, но всё же было бы лучше именно так.

Вобще говоря это дело реализации.
Те весь STL вполне может быть реализованно компилятором.
Таким образом если разработчик компилятора решит что std::function лучше реализовать компилятором то именно так он и сделает.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Что Вам мешает в С++?
От: gear nuke  
Дата: 26.06.08 12:33
Оценка:
Здравствуйте, <Аноним>, Вы писали:

GN>>После паскаля, думаю, сложно понять язык.

GN>>Это ничто иное, как современный стандартизованный (кроссплатформенный) ассемблер.
А>выделенное — оксюморон

Нет желания дискутировать? zen it Суть вещей всегда "до смешного просто"
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: Что Вам мешает в С++?
От: gear nuke  
Дата: 26.06.08 12:33
Оценка:
Здравствуйте, Gluk_Kazan, Вы писали:

G_K>LOL я то глупый думал, что макросы да шаблоны как раз предназначены для уменьшения писанины


Верно, клиентский код сокращается, но из этого совсем не следует. что библиотечный будет автоматически сгенерирован компилятором

G_K>Страуструп устал дожидаться когда Simula ему курсовик сосчитает


Поэтому ему и нужен был язык уровня ассемблера.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: Что Вам мешает в С++?
От: Кодёнок  
Дата: 26.06.08 13:38
Оценка: 14 (2) +4
Здравствуйте, remark, Вы писали:

R>Что Вам мешает в С++?


Тему не читал, по сабжу:

1. Переусложненность. Не нравится решать проблемы на пустом месте, решения которых нужны только компилятору. POD-типы инициализируются, а пользовательские нет (это и к вопросу о нелогичности). Функциям нужен прототип, даже если они находятся в этом же самом .cpp файле на 15 строк ниже. Класс со static-переменной не вызывает ошибок линковки, но глобальная static-переменная вызывает; инициализация же static-члена в классе сейчас в вообще невозможна и вне классе в хидере вызывает ошибку линковки. Вы уважаете право компилятора быть ленивым и капризным? Я нет. Я наоборот стараюсь автоматизировать максимум своей работы.

2. Непоследовательность и нелогичность грамматики. Можно придумать сотни как вырожденных примеров (типа new A<B>(0) == false если A это не шаблон), так и обоснованных (почему if (int x = 1) компилируется, а if (Foo x(1)) нет?). Дай бог чтобы в следующем стандарте это все почистили, но лично я тут настроен пессимистично — мешает и обратная совместимость, и сам подход (который и привел к такой ситуации) у авторов языка остался прежним.

3. Несовместимость. C++ плохо совместим даже сам с собой, в буквальном смысле. Проблемы даже в пределах одного компилятора: при пересечении границ процессов, DLL, при поставке новых сборок двоичных файлов в систему мелких модулей, при интеграции сторонних библиотек. Про такую фантастику, как собрать один модуль системы одним компилятором, а вторую другим, я не буду сильно распространяться, чтобы не трепать вам нервы Есть почти 100-ная зависимость: чем больше вы считаете .Net высосанной из пальца штукой, тем больше вы не согласны с этим пунктом.

Да я понимаю, всё рано или поздно исправят (сурово наступив себе на яйца — в ущерб обратной совместимости), но смотря что вдохновители некоторых C++ библиотек вносят в D например, я боюсь они просто наделают новых проблем. Многим программистам нравится именно сложность, им нравится быть профи, нравится знать, почему то что выглядит как строка и называется строкой не является строкой вообще, но мне уже надоело. Я согласен иметь дело с ним, если он будет применяться в 5% специфического низкоуровневого софта, а остальное писать на чем-нибудь более вменяемом (но см. пункт про совместимость — есть ли вообще у него такой шанс?).
Re[6]: Зачем C++ заголовочные файлы
От: gear nuke  
Дата: 26.06.08 14:44
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Как можно оставить возможность создания объектов на стеке и избежать перекомпиляции при изменении внутренней структуры объектов?


Back-patching еще в Dragonbook описан, осталось немного пофантазировать. Еще, размер и оффсеты на мемберы можно сделать не непосредственными операндами опкодов, а хранить как данные. Тогда можно будет даже в рантайме менять... Заплитить лишней косвенностью, как сейчас с VTbl.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Зачем C++ заголовочные файлы
От: gear nuke  
Дата: 26.06.08 14:45
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Для производительности. Чтобы можно было всё инлайнить. Чтобы можно было реализовать статический полиморфизм. За это приходится платить увеличением времени компиляции. Неужели не понятно?


Непонятно, почему из-за этого страдает JIT. Это легко в тех же C, asm, Forth, не говоря про многие высокоуровневые языки. Хотя сказано, что можно без файлов (16.2/2)
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[22]: catch { throw; }
От: gear nuke  
Дата: 26.06.08 15:08
Оценка: +1
Здравствуйте, merk, Вы писали:

M>ответ на вопрос простой и вовсе не ваш. ошибка выделения памяти относится к критическим ошибкам, при которых очень трудно восстановиться и продолжить работу. лучше тут стараться корректно завершаться с максимальным сохранением данных.


Написанный в соответствии с этим "правилом" софт не является надёжным, любое сторонее приложение может его завершить (хорошо еще, если это не приведёт к краху всей системы).
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: Что Вам мешает в С++?
От: iyura  
Дата: 26.06.08 16:08
Оценка:
Здравствуйте, Sergey, Вы писали:

S>CreatorCray пишет:


>> S>а вот с какой целью изготовили похожую на нее WTL и, особенно, почему

>> S>люди ей пользуются — для меня загадка.
>> WTL ИМХО больше на MFC похожа.

S>Ну не знаю. Внутри она устроена как оконная часть ATL, из которой

S>собственно и сделана — с чего бы ей быть похожей на MFC? DDX разве что
S>приделали MFC-образный.

>> Пользуются потому, что удобнее чем MFC.

>> Не требует ничего тащить с программой — никаких dependencies.

S>Что тащить ничего не надо — это замечательно. Но вот что она

S>обеспечивает такого, чего нет в винапи? Докинг там скажем или что-нибудь
S>подобное wxSizer? Или GDI объекты умеет правильно уничтожать, как та же
S>wxWidgets? Или куча стронних контролов под нее есть, как под MFC?
S>IMHO, без разницы — на голом винапи писать или с WTL.

Давненько пользовался WTL, но помнится, что была эта штука просто незаменима при написании всяких dislog based утилит. Контролов под нее можно найти достаточно много, сайзер встроен, ну, а близость к API — иногда очень полезна, IMHO

Qt и wxWidgets не пользовался (wxWidgets смотрел доки, примеры...), но активно пользовался MFC. В принципе — никаких претензий, но было бы замечательно (IMHO), если бы ее разбили на несколько библиотек и вот "оконной" частью такой "побитой" MFC могла бы стать WTL
Re[7]: Что Вам мешает в С++?
От: iyura  
Дата: 26.06.08 16:12
Оценка:
Здравствуйте, Sergey, Вы писали:

Ну и в догонку, что мешает. Бинарная несовместимость — библиотеку построенную одним компилятором не прикрутишь в другому. И про модульность и инклуды тут хорошо было сказано. Иногда занимался комбинаторикой, переставляя инклуды для того, чтобы оно скомпилировалось (не исключаю кривость рук)

А в целом — С++ отличнейшая штука
Re[8]: Что Вам мешает в С++?
От: Аноним  
Дата: 26.06.08 16:27
Оценка:
I>Ну и в догонку, что мешает. Бинарная несовместимость — библиотеку построенную одним компилятором не прикрутишь в другому
Как вы себе представляете прикручивание библиотеки скомпиленной под IA64 в проект для arm'а какого нить?
Re: С++ больше нет! :)
От: rg45 СССР  
Дата: 26.06.08 16:45
Оценка: :))) :))) :)))
Здравствуйте, remark, Вы писали:

R>Регулярно можно слышать критику в адрес С++, что дескать язык морально устаревший, что время разработки на С++ неприлично большое, что в С++ постоянно приходится сражаться с ветряными мельницами. Посему хочется провести следующий опрос среди коллег С++ программистов.


R>Что Вам мешает в С++?


R>...


На днях один мой знакомый побывал на самом крупном столичном книжном рынке. Там очаровательная блондинка потрясла его известием: "С++ больше нет, теперь вместо него С#"
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[9]: Что Вам мешает в С++?
От: Erop Россия  
Дата: 26.06.08 17:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вы себе представляете прикручивание библиотеки скомпиленной под IA64 в проект для arm'а какого нить?

А собранную gcc к собранному VC предатсаляешь?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Что Вам мешает в С++?
От: Аноним  
Дата: 26.06.08 18:02
Оценка: +1 -1
Кё>3. Несовместимость. C++ плохо совместим даже сам с собой, в буквальном смысле. Проблемы даже в пределах одного компилятора: при пересечении границ процессов, DLL, при поставке новых сборок двоичных файлов в систему мелких модулей, при интеграции сторонних библиотек. Про такую фантастику, как собрать один модуль системы одним компилятором, а вторую другим, я не буду сильно распространяться, чтобы не трепать вам нервы Есть почти 100-ная зависимость: чем больше вы считаете .Net высосанной из пальца штукой, тем больше вы не согласны с этим пунктом.
Плохая идея сравнивать кроссплатформенный ЯП которым является С++, и платформу, которыми являются .нет и жаба.
Re[23]: catch { throw; }
От: merk Россия  
Дата: 26.06.08 18:48
Оценка: -1
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, merk, Вы писали:


M>>ответ на вопрос простой и вовсе не ваш. ошибка выделения памяти относится к критическим ошибкам, при которых очень трудно восстановиться и продолжить работу. лучше тут стараться корректно завершаться с максимальным сохранением данных.


GN>Написанный в соответствии с этим "правилом" софт не является надёжным, любое сторонее приложение может его завершить (хорошо еще, если это не приведёт к краху всей системы).


я бы вам посоветовал все таки спасаться. поскольку без памяти программы обычно не работают.
выташите все модули памяти из компа и перезагрузитесь.
каким образом по-вашему стороннее приложение может завершить другое, через нехватку памяти? через захват общей памяти системы? тогда его, стороннее, обязана завершить ос. чтобы не баловалось.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.