Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему все любят С++? 
:(
    Опции темы
Beltar
Дата 11.4.2013, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

E2530 Type parameters not allowed on global procedure or function


Ну всунь в класс, как раз в духе .NET.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Akella
Дата 11.4.2013, 21:35 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 1
Всего: 329



Цитата
“В C++ всего 2 вещи получились не так: начальный замысел и реализация.” — Бертран Мейер

PM MAIL   Вверх
LSD
Дата 12.4.2013, 12:49 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 9
Всего: 537



Замечательный язык, не кода а песня smile 
Код

return (Param.Object->*(Param.Function))(Param.Param);
}

/*
как теперь не веселиться, не грустить от разных бед,
в нашем доме поселился замечательный сосед
пам-пам пам-парам-пам-пам-пам
пам-парам-пам-пам-пам
пам-парам-пам-пам
парарарарарам-пам
*/



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Athari
Дата 25.4.2013, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.6.2007
Где: Казань, Россия

Репутация: 1
Всего: 1



Если уж говорить о замечательном очевидном синтаксисе, то вот примеры:

Код

void**(*d)(int&,char**(*)(char*,char**));
char(*(*f())[])()char(*(*x[3])())[5];
const char**const p;


Хотя, конечно, так никто не делает. Если только на конкурс по обфускации.
PM MAIL WWW ICQ Skype Jabber AOL YIM MSN   Вверх
catr
Дата 17.6.2013, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.6.2013

Репутация: нет
Всего: нет



Цитата(Akella @  11.4.2013,  21:35 Найти цитируемый пост)
“В C++ всего 2 вещи получились не так: начальный замысел и реализация.” — Бертран Мейер


There are only two kinds of languages: the ones people complain about and the ones nobody uses. -- Bjarne Stroustrup

PM MAIL   Вверх
k0rvin
Дата 17.6.2013, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Да че уж по одной да по одной. http://harmful.cat-v.org/software/c++/


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 22.6.2013, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

There are only two kinds of languages: the ones people complain about and the ones nobody uses. -- Bjarne Stroustrup


Всяк кулик свое болото хвалит.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
drkot
Дата 4.9.2013, 02:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(k0rvin @  11.4.2013,  05:42 Найти цитируемый пост)
Угу, поржет. Над тобой. При чем тут вещественные константы? Ты понимаешь, что в С++ теперь можно константно инициализировать практически что угодно? Например:код C++1:2:constexpr int fact (int x) { x < 2 ? 1 : return x * fact(x - 1); }const fact10 = fact(10);highlightSyntax('cpp_jZThhM','cpp');Раньше такое можно было шаблонами делать, теперь вот просто функциями. Повтори-ка на Паскале, поржем.

Простите, за наивный вопрос, но можно пример практической задачи где подобный механизм необходим?
И второе, вычисления производятся на этапе компиляции или выполнения? 
Цитата(kolesnle @  11.4.2013,  08:48 Найти цитируемый пост)
Чем тебя не устраивают инклюды? Они лучше паскалевских юнитов

чем?


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
k0rvin
Дата 4.9.2013, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(drkot @  4.9.2013,  02:56 Найти цитируемый пост)
Простите, за наивный вопрос, но можно пример практической задачи где подобный механизм необходим?

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

Цитата(drkot @  4.9.2013,  02:56 Найти цитируемый пост)
И второе, вычисления производятся на этапе компиляции или выполнения?

Конечно на этапе компиляции в этом и смысл.

Это сообщение отредактировал(а) k0rvin - 4.9.2013, 18:33


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
drkot
Дата 4.9.2013, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(k0rvin @  4.9.2013,  18:30 Найти цитируемый пост)
способ выполнять некоторые вычисления на этапе компиляции

меня интересует реальный пример когда это необходимо и целесообразно, так как представить куда можно применить данный механизм не могу.
Цитата(k0rvin @  4.9.2013,  18:30 Найти цитируемый пост)
механизм не для решения непосредственно каких-то конкретных прикладных задач

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

Цитата(k0rvin @  4.9.2013,  18:30 Найти цитируемый пост)
на этапе компиляции

могу заблуждаться, но в С есть достаточно мощный препроцессор, который без труда можно заточить под формирование констант на этапе сборки. 
Ведь раз сделали данное расширение языка, значит оно кому-то очень нужно. Или не нужно? Может его так, для прикола сделали?
В чем необходимость данного нововведения?  


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
k0rvin
Дата 4.9.2013, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(drkot @  4.9.2013,  21:25 Найти цитируемый пост)
Вы только что сказали что данный механизм не нужен, осторожнее, Вас могут понять буквально.

Нет, я только что сказал, что этот инструмент для для решения конкретных прикладных задач, а общая фича языка. Такая же как сonst например или классы.

Цитата(drkot @  4.9.2013,  21:25 Найти цитируемый пост)
меня интересует реальный пример когда это необходимо и целесообразно, так как представить куда можно применить данный механизм не могу.

Построить таблицу области значений функции, соответствия символов кодировок например, основываясь на исходном статически известных массивах символов алфавита. Типа такого:
Код

static koi8r_cp1251_table = make_table("привет", "БНОПНЯ");

не напрягая этим рантайм.

Цитата(drkot @  4.9.2013,  21:25 Найти цитируемый пост)
могу заблуждаться, но в С есть достаточно мощный препроцессор, который без труда можно заточить под формирование констант на этапе сборки. 

Заблуждаешься, в С примитивный препроцессор, который практически только и умеет что простую текстовую подстановку кода. При этом никаких особых вычислений в compile-time не сделать. Шаблоны С++ позволяют некоторые простые вещи вычислить во время компиляции, но они несколько громоздки в написании и их почти нельзя запихнуть в объектник, только в заголовочный файл.


Цитата(drkot @  4.9.2013,  21:25 Найти цитируемый пост)
В чем необходимость данного нововведения?

Как всегда: плюсовики фапают на скорость. =)


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
drkot
Дата 5.9.2013, 04:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: нет
Всего: 8



Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
Нет, я только что сказал, что этот инструмент для для решения конкретных прикладных задач

Цитата(k0rvin @  4.9.2013,  18:30 Найти цитируемый пост)
Это механизм не для решения непосредственно каких-то конкретных прикладных задач

определитесь, пожалуйста, он для или не для. 
Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
Такая же как сonst например или классы

озвученные Вами механизмы решают непосредственно очень конкретные задачи. И то что их часто применяют говорит о высокой целесообразности, а не о том, что это 
Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
общая фича языка

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

Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
Построить таблицу области значений функции

Зачем? Где это используется? Если функция непрерывна, то в этом мало смысла, если же она дискретна, то является математически простой и смысла ее загонять в константу нет. А если функция о 20-ти параметрах? и каждый принимает хотя бы три значения. Сколько будет весить константа? 
Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
соответствия символов кодировок например

Как? Хочу пример функции которая создаст массив подстановок для перекодирования koi-7 в utf-8. Ну или хоть какой-то... Перекодировка подстановками делается т.к. в процессе написания аналитической функции есть риск, что пупок развяжется...
Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
1:static koi8r_cp1251_table = make_table("привет", "БНОПНЯ"); не напрягая этим рантайм.

одного не могу понять, что делает функция make_table? Собственно Вы и так передали на вход таблицу перекодировки, зачем с ней еще что-то делать?
ИМХО: судя по цитате Вы любите Си за необходимость решать простые вещи, через очень сложное место...
  
Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
Заблуждаешься, в С примитивный препроцессор, который практически только и умеет что простую текстовую подстановку кода

возможно... но что-то мне подсказывает, что Си это не язык, а конструктор Вашего языка... или это всего лишь профанация, порожденная отдельными личностями? и брызги по поводу великого препроцессора Си это так, ППР?
Расширять функционал препроцессора не пробовали?

Цитата(k0rvin @  4.9.2013,  22:00 Найти цитируемый пост)
Как всегда: плюсовики фапают на скорость.

не спорю, подстановки быстрее вычислений (причем любых). 
но роль данного механизма в make_table("привет", "БНОПНЯ") более чем сомнительна, так как смысла функции (действий) в данном примере нет.
а использование предварительно вычисленных значений функций, попахивает лабами 5-го класса... "распечатаете значение функции y=2*x где x = 0,1 - 10"... Там же где используется статичный базис (простейшее crcXX, mdX) функции вычисления базисных констант математически сложны, требуют не дюжего количества кода и вычисления могут длится не то что часами, а даже неделями.
Учитывая что компиляция и так не ракета, применение вычисляемых констант затормозит ее еще больше... Думаю найдутся таланты вычисляющие число Пи на этапе компиляции... 


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
k0rvin
Дата 5.9.2013, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
определитесь, пожалуйста, он для или не для.

Опечатка, правильно «не для».

Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
озвученные Вами механизмы решают непосредственно очень конкретные задачи.

Например?

Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
одного не могу понять, что делает функция make_table? Собственно Вы и так передали на вход таблицу перекодировки, зачем с ней еще что-то делать?

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

Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
возможно... но что-то мне подсказывает, что Си это не язык, а конструктор Вашего языка... или это всего лишь профанация, порожденная отдельными личностями? и брызги по поводу великого препроцессора Си это так, ППР?

Не знаю, что за личности, но препроцессор Си туп как пробка. Конечно с его помощью реализованы объекты GObject в GTK, но, насколько я знаю, там такой ад и каша из макросов, что лучше б они этого не делали.

Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
а использование предварительно вычисленных значений функций, попахивает лабами 5-го класса... "распечатаете значение функции y=2*x где x = 0,1 - 10"...

Если область определения известна на этапе компиляции, то почему бы не сделать функцию y константным выражением. Какая постановка задачи, такое и решение. =)
Естественно в реальной жизни y должна быть обычной функцией, т.к. данные будут поступать в рантайме, но речь-то не об этом.

Цитата(drkot @  5.9.2013,  04:08 Найти цитируемый пост)
Учитывая что компиляция и так не ракета, применение вычисляемых констант затормозит ее еще больше... Думаю найдутся таланты вычисляющие число Пи на этапе компиляции...  

Это уже другой вопрос, таланты всегда были и будут.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
ТарасАтавин
Дата 16.9.2013, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 26.8.2013

Репутация: нет
Всего: нет



Цитата(TP@MB@Y @  11.7.2005,  19:35 Найти цитируемый пост)
Сорри если не туда запостил топик 

Вобщем мне жутко интересно, чем лучше C++ того же паскаля? Думаю всем здесь известно, что настоящий программист составляет и реализует свои алгоритмы, и в зависимости от специфики задачи выбирает удобную в плане реализации среду программирования. 

Конечно, существует такой сильный фактор, как "к чему в детстве приучили". Я например начинал с паскаля и сейчас отдаю ему предпочтение (читай Delphi). Кто то начинал с Си и сейчас например предпочитает Билдер Дельфям. А ктооо тооо (тут полагается сделать зловещую паузу  ) учил в детстве бэйсик....
Билдер делфям не предпочитают, билдер юзают дельфицы при необходимости работы в парах с крестанутыми и сионистами, в нем не осталось ни гибкости полноценных плюсов в плане разработки интерфейса, ни упрощённого-сокращённого паскального синтаксиса. Я тоже начинал с паскаля, а пишу на кодоблоках, так как они не навязывают мне vcl, а позволяют весь интерфей

Цитата(TP@MB@Y @  11.7.2005,  19:35 Найти цитируемый пост)
Вобщем мне жутко интересно, чем лучше C++ того же паскаля? Думаю всем здесь известно, что настоящий программист составляет и реализует свои алгоритмы, и в зависимости от специфики задачи выбирает удобную в плане реализации среду программирования. 

Конечно, существует такой сильный фактор, как "к чему в детстве приучили". Я например начинал с паскаля и сейчас отдаю ему предпочтение (читай Delphi). Кто то начинал с Си и сейчас например предпочитает Билдер Дельфям. 
Билдер не предпочитают, его юзают пасквилянты при необходимости работы в парах с сионистами и крестанутыми. В нём нет ни упрощённо-сокращённого синтаксиса делфей, ни гибкости плюсов в плане разработки интерфейса. Я тоже начинал с паскаля, а пишу на c++ на кодоблоках, так как они не навязывают мне vcl, а позволяют интерфейс писать на том же языке. Гибко и достаточно произвольно. Можно хоть direct-x для кнопок заюзать их положить в 3D прямо на главное окно, не связываясь с панелями и не страдая тенями "рельефа" этих панелей по краям. Или ещё что нибудь не стандартное сделать. Можно даже вообще отказаться от окна и весь вывод отправить на рабочий стол, а под делфой это выльется в борьбу с vcl.



--------------------
Не так всё плохо, как оно есть на самом деле.
PM MAIL   Вверх
Exiousle
Дата 27.9.2013, 11:44 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 25.9.2013

Репутация: нет
Всего: нет



 smile  ВСЕМ нравится С++??? ВСЕМ??? 
Где это написано?  smile 
Или я не все, или С++ любят НЕ все  smile 
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1878 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.