Re[37]: MSVC2010 + C99
От: Piko  
Дата: 13.05.12 21:52
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


P>>хотя бы вот это:

P>>http://rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]
(имхо, вопрос задан чётко и лаконично, и контекста предостаточно)

P>>"Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?: Да 21; Нет 3".
AS>Пошутил да. )))) Вообще-то ровно в том же объёме что и RAII, иначе говоря нет, не является. А то что миллионы мух... ну ты сам знаешь, дык вот мне это сугубо фиолетово.

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

AS>Кстати, показательно что 3 человека язык таки знают.


Знают? или просто не считают это синтаксическим онанизмом?

AS>>>Ну, по причине неадекватной сложности, ведущей к постоянной борьбе с языком, и постоянного вынужденного скатывания к синтаксическому онанизму.

P>>То есть ты как на C++ скатывался к синтаксическому онанизму, так и на C.
P>>Кэп mode on: Может дело не в языках, а в тебе?
AS>Может быть, а может и в том, что ты не знаком с разными методами писания кода на C недостойном внимания настоящих мачо, ограничившись вузовским введением перед прыжком в гламурно-сахарный С++?

А как вообще я причастен к тому, что ты и на C++ и на С "вынужден скатываться к синтаксическому онанизму", но при этом считаешь это неприемлемым для C++, но приемлемым для C?

P>>>>я спросил как это можно сделать..

P>>>>как пример ты привёл трёхэтажный синтаксический препроцессорный онанизм, против которого ты сам высказывался ранее
AS>В макросах, количество которых можно пересчитать по пальцам? Кстати, ты уж разъясни в чём именно там онанизм? В использовании препроцессора? Может некоторое неоднозначное поведение, сложная логика, комплексное использование нетривиальных приёмов программирования без особой надобности?

многоэтажные управляющие структуры для реализации простого пост эффекта.
я не спорю — на C это может быть полезно, так как нет встроенного авто-освобождения ресурсов, но — эта реализация всё равно синтаксический онанизм.

AS>Плюс несколько макросов расширяющих язык специальными конструкциями, которые локальны и на написание остального кода практически не влияют. Есть ровно одно правило — всё что осталось на пуле будет освобождено при выходе из маркированного блока, и никаких магических заклинаний. Макрос лишь просто вставка очистки пула в конец блока. В этом и есть существенный плюс в сравнении с двумя плюсами.


В чём, чём плюс?
Может в runtime overhead на освобождение ресурсов?

P>>то есть когда результаты твоего синтаксического онанизма на C обвёрнуты во что-нибудь, то они уже допустимы?

P>>Может тебе стоило попробовать делать тоже самое на C++ ?

AS>А ты вот попробуй. ))) Покажи своё владение силой, Люк. Напиши ровно то же что и я, только на С++, хоть с STL, хоть с сиськами, с чем угодно. Давай сравним простоту, понятность кода и конечно же количество использованных сущностей и их внутреннюю сложность. Только рабочий пример, а не сферического коня в вакууме.


только давай ты сначала выдерешь из своего "рантайма" всё что необходимо для этого примера, и оформишь в виде одного файла, ок?

AS>>>Например реализацию исключений. Да ладно менять, хотя бы гарантировать что она есть. Про шаблонные же выверты можно просто скромно промолчать.

P>>какого рода гарантии тебе нужны?
AS>Хотя бы просто то что я МОГУ их использовать. Я знаешь ли уже не раз сталкивался с случаями когда каменный цветок упорно отказывался выходить.

В каком году у тебя не выходил каменный цветок последний раз?

P>>То есть ты намекаешь, что сам, лично написал пару лямов строк кода?

P>>За сколько лет?
AS>Больше ))) Много больше ляма только в своих собственных проектах, для души так сказать. В рамках эксперимента, посмотреть что будет если делать так, и вот так, и ещё вот так, если это вообще работать будет. Но куда тебе такое понять, если для тебя даже работающий пример написать проблема непреодолимой сложности.

сколько лет, и сколько лямов строк собственноручно(+-500k)? это такой сложный вопрос для гулявших по граблям по пути через лямы строк гуру?
если это 4M и 10 лет, то в средним на каждый день получается больше 1k строк, что как-то совсем дохреновато. если конечно это не мелкие зубочистки, либо тонны говнокода.
Re[38]: MSVC2010 + C99
От: Alexéy Sudachén Чили  
Дата: 13.05.12 23:00
Оценка:
Здравствуйте, Piko, Вы писали:

AS>>Плюс несколько макросов расширяющих язык специальными конструкциями, которые локальны и на написание остального кода практически не влияют. Есть ровно одно правило — всё что осталось на пуле будет освобождено при выходе из маркированного блока, и никаких магических заклинаний. Макрос лишь просто вставка очистки пула в конец блока. В этом и есть существенный плюс в сравнении с двумя плюсами.

P>В чём, чём плюс?
P>Может в runtime overhead на освобождение ресурсов?

В C++ надо понимать освобождение ресурсов бесплатное. )

AS>>А ты вот попробуй. ))) Покажи своё владение силой, Люк. Напиши ровно то же что и я, только на С++, хоть с STL, хоть с сиськами, с чем угодно. Давай сравним простоту, понятность кода и конечно же количество использованных сущностей и их внутреннюю сложность. Только рабочий пример, а не сферического коня в вакууме.

P>только давай ты сначала выдерешь из своего "рантайма" всё что необходимо для этого примера, и оформишь в виде одного файла, ок?

Ровно после того как ты выдернешь из STL в отдельный файлик, то что нужно тебе шоб написать аналогичный моему пример.
Re[39]: MSVC2010 + C99
От: Piko  
Дата: 14.05.12 00:38
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Плюс несколько макросов расширяющих язык специальными конструкциями, которые локальны и на написание остального кода практически не влияют. Есть ровно одно правило — всё что осталось на пуле будет освобождено при выходе из маркированного блока, и никаких магических заклинаний. Макрос лишь просто вставка очистки пула в конец блока. В этом и есть существенный плюс в сравнении с двумя плюсами.

P>>В чём, чём плюс?
P>>Может в runtime overhead на освобождение ресурсов?
AS>В C++ надо понимать освобождение ресурсов бесплатное. )

дешевле.
особенно в случаях где не могут быть выкинуты исключения — вообще бесплатно

AS>>>А ты вот попробуй. ))) Покажи своё владение силой, Люк. Напиши ровно то же что и я, только на С++, хоть с STL, хоть с сиськами, с чем угодно. Давай сравним простоту, понятность кода и конечно же количество использованных сущностей и их внутреннюю сложность. Только рабочий пример, а не сферического коня в вакууме.

P>>только давай ты сначала выдерешь из своего "рантайма" всё что необходимо для этого примера, и оформишь в виде одного файла, ок?
AS>Ровно после того как ты выдернешь из STL в отдельный файлик, то что нужно тебе шоб написать аналогичный моему пример.

STL — это стандарт
я же не сказал, чтобы ты декларации, а то и определения стандартных функций выдирал.
Re[38]: MSVC2010 + C99
От: 11molniev  
Дата: 17.05.12 12:39
Оценка: -2 :)
Здравствуйте, Piko, Вы писали:

P>вы понимаете, что абстракции могут иметь разные реализации. и да, некоторые могут быть медленней.

P>но, у нас как бы разговор, и есть определённый контекст.
P>Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно.

Дабы завершить наши препирательства:
Изначально я и обратил ваше внимание, на то, что С++ не позволяет писать более быстрые приложения, чем С.
http://www.rsdn.ru/poll/3562.aspx
Автор: m2l
Дата: 13.05.12
Вопрос: Товарищь Piko полагает, что С++ позволяет писать более быстрый код, чем С. Цитата:
"Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно."
В связи с чем мне интересно, кто ещё думает, что С++ позволяет писать более быстрый код, чем С. (Не меньше кода, не больше абстракций, не быстрей, а именно более быстрый).
Вопрос: С++ позволяет писать более быстрый код чем С?

К моей радости, большая часть аудитории данного форума это понимают. И я даже не знаю, как объяснить это вам, потому, что это фундаментальное знание — и если вы знаете С++, вы понимаете, почему так.
Могу лишь понадеется, что в будущем, когда у вас будет больше опыта вы поймете, почему были неправы.
Re[39]: MSVC2010 + C99
От: Piko  
Дата: 19.06.12 19:26
Оценка:
Здравствуйте, 11molniev, Вы писали:

P>>вы понимаете, что абстракции могут иметь разные реализации. и да, некоторые могут быть медленней.

P>>но, у нас как бы разговор, и есть определённый контекст.
P>>Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно.

1>Дабы завершить наши препирательства:

1>Изначально я и обратил ваше внимание, на то, что С++ не позволяет писать более быстрые приложения, чем С.
1>http://www.rsdn.ru/poll/3562.aspx
Автор: m2l
Дата: 13.05.12
Вопрос: Товарищь Piko полагает, что С++ позволяет писать более быстрый код, чем С. Цитата:
"Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно."
В связи с чем мне интересно, кто ещё думает, что С++ позволяет писать более быстрый код, чем С. (Не меньше кода, не больше абстракций, не быстрей, а именно более быстрый).
Вопрос: С++ позволяет писать более быстрый код чем С?

1>К моей радости, большая часть аудитории данного форума это понимают. И я даже не знаю, как объяснить это вам, потому, что это фундаментальное знание — и если вы знаете С++, вы понимаете, почему так.

то что цитата в вопросе вырвана из контекста, я уже писал

http://www.rsdn.ru/poll/3562.aspx
Автор: m2l
Дата: 13.05.12
Вопрос: Товарищь Piko полагает, что С++ позволяет писать более быстрый код, чем С. Цитата:
"Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно."
В связи с чем мне интересно, кто ещё думает, что С++ позволяет писать более быстрый код, чем С. (Не меньше кода, не больше абстракций, не быстрей, а именно более быстрый).
Вопрос: С++ позволяет писать более быстрый код чем С?

"
Вопрос: С++ позволяет писать более быстрый код чем С?
1. Да 12
2. Нет 27
3. Этот аналогичный код на C, зачастую не пишется и оставляется не оптимальная версия 1
"
3 — относится к моей точки зрения

итого, мою точку зрения поддерживают 32.5% (даже при "плохой" постановке вопроса)
и?

смотрим моё утверждение в этом топике:

http://www.rsdn.ru/forum/cpp/4731645.aspx
Автор: Piko
Дата: 10.05.12

Это распространённое заблуждение, что код на C более быстр и менее требователен. Если важна эффективность, C++ легко позволяет писать более оптимальные программы чем C.


что вам не ясно-то?
вы хотели подтвердить моё высказывание своим опросом?

1>Могу лишь понадеется, что в будущем, когда у вас будет больше опыта вы поймете, почему были неправы.


аналогично
Re[40]: MSVC2010 + C99
От: 11molniev  
Дата: 20.06.12 09:15
Оценка:
Здравствуйте, Piko, Вы писали:

P>Здравствуйте, 11molniev, Вы писали:


P>>>вы понимаете, что абстракции могут иметь разные реализации. и да, некоторые могут быть медленней.

P>>>но, у нас как бы разговор, и есть определённый контекст.
P>>>Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно.

1>>Дабы завершить наши препирательства:

1>>Изначально я и обратил ваше внимание, на то, что С++ не позволяет писать более быстрые приложения, чем С.
1>>http://www.rsdn.ru/poll/3562.aspx
Автор: m2l
Дата: 13.05.12
Вопрос: Товарищь Piko полагает, что С++ позволяет писать более быстрый код, чем С. Цитата:
"Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно."
В связи с чем мне интересно, кто ещё думает, что С++ позволяет писать более быстрый код, чем С. (Не меньше кода, не больше абстракций, не быстрей, а именно более быстрый).
Вопрос: С++ позволяет писать более быстрый код чем С?

1>>К моей радости, большая часть аудитории данного форума это понимают. И я даже не знаю, как объяснить это вам, потому, что это фундаментальное знание — и если вы знаете С++, вы понимаете, почему так.

P>то что цитата в вопросе вырвана из контекста, я уже писал

Ну сделайте голосовалку не вырванную из контекста. Я чем этому мешаю?

P>итого, мою точку зрения поддерживают 32.5% (даже при "плохой" постановке вопроса)

P>и?
Привет им. Мног8ие считают, что питон быстрей всех языков в мире.
P>смотрим моё утверждение в этом топике:
Ваше утверждение это самый серьезный пруф, который я только видел.
P>http://www.rsdn.ru/forum/cpp/4731645.aspx
Автор: Piko
Дата: 10.05.12

P>

P>Это распространённое заблуждение, что код на C более быстр и менее требователен. Если важна эффективность, C++ легко позволяет писать более оптимальные программы чем C.


P>что вам не ясно-то?

Мне не ясно, почему вы не думаете головой. пытаетесь противоречить фактам.

P>вы хотели подтвердить моё высказывание своим опросом?

Что 2/3 посетителей этого форума с вами совсем не согласны.

1>>Могу лишь понадеется, что в будущем, когда у вас будет больше опыта вы поймете, почему были неправы.

P>аналогично
Ну подождем друг друга)))
Re[41]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 18:10
Оценка:
Здравствуйте, 11molniev, Вы писали:

P>>>>вы понимаете, что абстракции могут иметь разные реализации. и да, некоторые могут быть медленней.

P>>>>но, у нас как бы разговор, и есть определённый контекст.
P>>>>Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно.

1>>>Дабы завершить наши препирательства:

1>>>Изначально я и обратил ваше внимание, на то, что С++ не позволяет писать более быстрые приложения, чем С.
1>>>http://www.rsdn.ru/poll/3562.aspx
Автор: m2l
Дата: 13.05.12
Вопрос: Товарищь Piko полагает, что С++ позволяет писать более быстрый код, чем С. Цитата:
"Конкретно я имею ввиду, что C++ позволяет писать более абстрактный, более безопасный, и более быстрый код — и всё это одновременно."
В связи с чем мне интересно, кто ещё думает, что С++ позволяет писать более быстрый код, чем С. (Не меньше кода, не больше абстракций, не быстрей, а именно более быстрый).
Вопрос: С++ позволяет писать более быстрый код чем С?

1>>>К моей радости, большая часть аудитории данного форума это понимают. И я даже не знаю, как объяснить это вам, потому, что это фундаментальное знание — и если вы знаете С++, вы понимаете, почему так.

P>>то что цитата в вопросе вырвана из контекста, я уже писал

1>Ну сделайте голосовалку не вырванную из контекста. Я чем этому мешаю?

а смысл? вот буквально ниже:

P>>итого, мою точку зрения поддерживают 32.5% (даже при "плохой" постановке вопроса)

P>>и?
1>Привет им. Мног8ие считают, что питон быстрей всех языков в мире.

вы приравниваете людей разделяющих мою точку зрения к баранами


P>>смотрим моё утверждение в этом топике:

1>Ваше утверждение это самый серьезный пруф, который я только видел.


у вас в голове контекст вообще мизерный, что-ли?

P>>http://www.rsdn.ru/forum/cpp/4731645.aspx
Автор: Piko
Дата: 10.05.12

P>>

P>>Это распространённое заблуждение, что код на C более быстр и менее требователен. Если важна эффективность, C++ легко позволяет писать более оптимальные программы чем C.


P>>что вам не ясно-то?

1>Мне не ясно, почему вы не думаете головой. пытаетесь противоречить фактам.

каким фактам?

Ну так там где в C возможно compile-time, оно возможно и в C++, причём в C++ — оно достигается намного легче/лучше/красивее


Вы с этим согласны/не согласны?

P>>вы хотели подтвердить моё высказывание своим опросом?

1>Что 2/3 посетителей этого форума с вами совсем не согласны.

ну и?:

Это распространённое заблуждение, что код на C более быстр и менее требователен. Если важна эффективность, C++ легко позволяет писать более оптимальные программы чем C.

Re[24]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 21:55
Оценка:
Здравствуйте, Piko, Вы писали:

P>Как я писал ранее — отсутствие компилятора действительно может затруднять использование С++, но как я уже писал есть компиляторы транслирующие код C++ в код C.


Это совсем не понятно. Такая сложная схема компиляции наверняка будет иметь накладные расходы всякие, надо бы понимать ради чего? Чем подмножество С++ так уж лучше С + анализатор кода?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[25]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 22:20
Оценка:
Здравствуйте, Erop, Вы писали:

P>>Как я писал ранее — отсутствие компилятора действительно может затруднять использование С++, но как я уже писал есть компиляторы транслирующие код C++ в код C.


E>Это совсем не понятно. Такая сложная схема компиляции наверняка будет иметь накладные расходы всякие, надо бы понимать ради чего?


про какие именно накладные расходы вы говорите?
1. отсутствие оптимизации в некоторых местах, из-за того что теряется исходная C++ семантика?
2. накладные расходы во время разработки?

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

E>Чем подмножество С++ так уж лучше С + анализатор кода?


1. надёжность
2. безопасность
3. абстракции (зачастую абсолютно ничего не стоящие)
4. скорость программ
5. причём всё это, порождает меньше исходного кода чем C
Re[12]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 22:24
Оценка:
Здравствуйте, Piko, Вы писали:

P>>>в. выедают stack

V>>Это не обязательно проблема — например, если такой массив используется в многократно вызываемой фунцкции. Стек все равно освобождается в ее конце.

Даже если она inline?..
В С99 есть такие гарантии?

P>естественно, что полностью не уберёт, так как в С++ есть перегрузка функций(для каждой должно быть своё имя) и т.п.

В С++ extern "C" функции нельзя перегружать..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[13]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 22:29
Оценка:
Здравствуйте, Erop, Вы писали:

P>>естественно, что полностью не уберёт, так как в С++ есть перегрузка функций(для каждой должно быть своё имя) и т.п.

E>В С++ extern "C" функции нельзя перегружать..

я знаю

естественно, что полностью не уберёт, так как в С++ есть перегрузка функций(для каждой должно быть своё имя) и т.п.
но ничто не мешает для С++ библиотеки, делать полностью clean-C интерфейс

Re[28]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 22:39
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Исключения делаются на setjmp. Автоматическое управление ресурсами — не знаю как. Впрочем, мне неизвестны языки с автоматическим управлением ресурсами, кроме С++.


В чём проблемы? Делаешь статического владельца ресурсами, при аллокации их там регишь, при деаллокации -- разрегистрируешь. Хранилище умеет делать с себя слепок и локальное на нить.
При входе в функцию -- делаешь слепок, при выходе -- откатываешься к нему.
Если не откатишься в этой, то откатишься в предыдущей...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[29]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 22:43
Оценка:
Здравствуйте, Erop, Вы писали:

V>>Исключения делаются на setjmp. Автоматическое управление ресурсами — не знаю как. Впрочем, мне неизвестны языки с автоматическим управлением ресурсами, кроме С++.

E>В чём проблемы? Делаешь статического владельца ресурсами, при аллокации их там регишь, при деаллокации -- разрегистрируешь. Хранилище умеет делать с себя слепок и локальное на нить.
E>При входе в функцию -- делаешь слепок, при выходе -- откатываешься к нему.
E>Если не откатишься в этой, то откатишься в предыдущей...

читайте дальше, есть решение без явного отката
Re[26]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 22:52
Оценка:
Здравствуйте, Piko, Вы писали:

P>про какие именно накладные расходы вы говорите?


Ну, например, номер строчки в которой из двух версий исходника будет показывать макрос assert?

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


О том и речь...

E>>Чем подмножество С++ так уж лучше С + анализатор кода?


P>1. надёжность

Не очевидно.

P>2. безопасность

Это не понятно.

P>3. абстракции (зачастую абсолютно ничего не стоящие)

IMHO, это одинаково хорошо на любом языке. На С++ даже хуже, если твои абстракции не совместимы с моделью С++...

P>4. скорость программ

Это не понятно. По идее Вылизанная С-программа и вылизанная С++ программа должны быть одинаково быстры.
Тут скорее вопрос в цене этой скорости/вылизанности.

P>5. причём всё это, порождает меньше исходного кода чем C

Тоже ценность мутная.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[14]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 22:53
Оценка:
Здравствуйте, Piko, Вы писали:


P>я знаю


Это хорошо, но тут публичный форум. Ты знаешь, а кто-то может быть введён в заблуждение неудачной формулировкой...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[30]: MSVC2010 + C99
От: Erop Россия  
Дата: 20.06.12 22:55
Оценка:
Здравствуйте, Piko, Вы писали:


P>читайте дальше, есть решение без явного отката


"Явный" не всегда значит "плохой"...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[27]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 23:10
Оценка:
Здравствуйте, Erop, Вы писали:

P>>про какие именно накладные расходы вы говорите?

E>Ну, например, номер строчки в которой из двух версий исходника будет показывать макрос assert?

смотря где препроцессор отработает..

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

E>О том и речь...



E>>>Чем подмножество С++ так уж лучше С + анализатор кода?


P>>1. надёжность

E>Не очевидно.

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

P>>2. безопасность

E>Это не понятно.

да хотя бы сколько было уязвимостей из-за sprintf

P>>3. абстракции (зачастую абсолютно ничего не стоящие)

E>IMHO, это одинаково хорошо на любом языке. На С++ даже хуже, если твои абстракции не совместимы с моделью С++...

на любом языке
да на том же C — в qsort: абстрагировались от типа данных и функции сравнения — и что получили?

P>>4. скорость программ

E>Это не понятно. По идее Вылизанная С-программа и вылизанная С++ программа должны быть одинаково быстры.
E>Тут скорее вопрос в цене этой скорости/вылизанности.

разумеется в цене. если цена это на порядок, а то и на несколько больший объём кода, то зачастую она не платится
опять: std::sort vs qsort

P>>5. причём всё это, порождает меньше исходного кода чем C

E>Тоже ценность мутная.

опять: std::sort vs qsort, самый простой пример.


а вообще: http://www2.research.att.com/~bs/new_learning.pdf

P>>я знаю

E>Это хорошо, но тут публичный форум. Ты знаешь, а кто-то может быть введён в заблуждение неудачной формулировкой...

имхо удачная, не суть
Re[31]: MSVC2010 + C99
От: Piko  
Дата: 20.06.12 23:12
Оценка:
Здравствуйте, Erop, Вы писали:

P>>читайте дальше, есть решение без явного отката

E>"Явный" не всегда значит "плохой"...

интересен был неявный. явный — очевиден.
Re[28]: MSVC2010 + C99
От: Erop Россия  
Дата: 21.06.12 04:26
Оценка:
Здравствуйте, Piko, Вы писали:


P>смотря где препроцессор отработает..

А есть варианты
Как, по твоему, С будет транслировать С++ хедеры?..


P>>>1. надёжность

E>>Не очевидно.

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


Ну так это, С + анализатор же рассматривается?..

P>>>2. безопасность

E>>Это не понятно.

P>да хотя бы сколько было уязвимостей из-за sprintf

Просто системного С++ кода мало, вот и уязвимостей мало
Опять же, анализаторы кода простые косяки, вроде ловят...


P>на любом языке

P>да на том же C — в qsort: абстрагировались от типа данных и функции сравнения — и что получили?
ну просела немного производительность...
Было бы критично -- написали бы макрос...


P>разумеется в цене. если цена это на порядок, а то и на несколько больший объём кода, то зачастую она не платится

Значит скорость в этом месте не так уж и нужна...
Узких мест обычно мало...

P>опять: std::sort vs qsort

Да пофигу. Это редко влияет на скорость реальных программ...
А если уж в твоей проге критична какая-то сортировка, то всё равно скорее всего надо алгоритм адаптировать...

P>>>5. причём всё это, порождает меньше исходного кода чем C

E>>Тоже ценность мутная.

P>опять: std::sort vs qsort, самый простой пример.

Он слишком синтетический... Кроме того, чисто IMHO, шаблоны и STL в обсуждаемое подмножество С++ не входят
Я, кстати, тоже сторонник "подмножества С++", а не голого С, но аргументы слабые какие-то...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[32]: MSVC2010 + C99
От: Erop Россия  
Дата: 21.06.12 04:27
Оценка:
Здравствуйте, Piko, Вы писали:


P>интересен был неявный. явный — очевиден.


Я так и не понял, какой неявный способ тут считают приемлемым...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.