|
Модераторы: LSD |
|
Beltar |
|
|||
Опытный Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Ну всунь в класс, как раз в духе .NET. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. (с) я, хотя может и нет Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
|
|||
|
||||
LSD |
|
|||
Leprechaun Software Developer Профиль Группа: Модератор Сообщений: 15709 Регистрация: 24.3.2004 Репутация: 9 Всего: 537 |
Замечательный язык, не кода а песня
-------------------- 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. |
|||
|
||||
Athari |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 27.6.2007 Где: Казань, Россия Репутация: 1 Всего: 1 |
Если уж говорить о замечательном очевидном синтаксисе, то вот примеры:
Хотя, конечно, так никто не делает. Если только на конкурс по обфускации. |
|||
|
||||
catr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.6.2013 Репутация: нет Всего: нет |
||||
|
||||
k0rvin |
|
|||
Опытный Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
Beltar |
|
|||
Опытный Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Всяк кулик свое болото хвалит. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. (с) я, хотя может и нет Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
Простите, за наивный вопрос, но можно пример практической задачи где подобный механизм необходим? И второе, вычисления производятся на этапе компиляции или выполнения? чем? -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
k0rvin |
|
||||
Опытный Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Это механизм не для решения непосредственно каких-то конкретных прикладных задач, а способ выполнять некоторые вычисления на этапе компиляции (например инициализация сложных статических объектов, когда эта инициализация не зависит от рантайма конечно), что снижает нагрузку на рантайм и улучшает читаемость и самодокументирование кода.
Конечно на этапе компиляции в этом и смысл. Это сообщение отредактировал(а) k0rvin - 4.9.2013, 18:33 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
drkot |
|
|||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
меня интересует реальный пример когда это необходимо и целесообразно, так как представить куда можно применить данный механизм не могу.
Вы только что сказали что данный механизм не нужен, осторожнее, Вас могут понять буквально. могу заблуждаться, но в С есть достаточно мощный препроцессор, который без труда можно заточить под формирование констант на этапе сборки. Ведь раз сделали данное расширение языка, значит оно кому-то очень нужно. Или не нужно? Может его так, для прикола сделали? В чем необходимость данного нововведения? -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
k0rvin |
|
||||||||
Опытный Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Нет, я только что сказал, что этот инструмент для для решения конкретных прикладных задач, а общая фича языка. Такая же как сonst например или классы.
Построить таблицу области значений функции, соответствия символов кодировок например, основываясь на исходном статически известных массивах символов алфавита. Типа такого:
не напрягая этим рантайм.
Заблуждаешься, в С примитивный препроцессор, который практически только и умеет что простую текстовую подстановку кода. При этом никаких особых вычислений в compile-time не сделать. Шаблоны С++ позволяют некоторые простые вещи вычислить во время компиляции, но они несколько громоздки в написании и их почти нельзя запихнуть в объектник, только в заголовочный файл. Как всегда: плюсовики фапают на скорость. =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
drkot |
|
||||||||
Ищущий Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: нет Всего: 8 |
определитесь, пожалуйста, он для или не для. озвученные Вами механизмы решают непосредственно очень конкретные задачи. И то что их часто применяют говорит о высокой целесообразности, а не о том, что это последнее обычно в голове бывает, зачастую еще и с шестью лапками... используйте меньше сленга по возможности. Зачем? Где это используется? Если функция непрерывна, то в этом мало смысла, если же она дискретна, то является математически простой и смысла ее загонять в константу нет. А если функция о 20-ти параметрах? и каждый принимает хотя бы три значения. Сколько будет весить константа? Как? Хочу пример функции которая создаст массив подстановок для перекодирования koi-7 в utf-8. Ну или хоть какой-то... Перекодировка подстановками делается т.к. в процессе написания аналитической функции есть риск, что пупок развяжется...
одного не могу понять, что делает функция make_table? Собственно Вы и так передали на вход таблицу перекодировки, зачем с ней еще что-то делать? ИМХО: судя по цитате Вы любите Си за необходимость решать простые вещи, через очень сложное место...
возможно... но что-то мне подсказывает, что Си это не язык, а конструктор Вашего языка... или это всего лишь профанация, порожденная отдельными личностями? и брызги по поводу великого препроцессора Си это так, ППР? Расширять функционал препроцессора не пробовали? не спорю, подстановки быстрее вычислений (причем любых). но роль данного механизма в make_table("привет", "БНОПНЯ") более чем сомнительна, так как смысла функции (действий) в данном примере нет. а использование предварительно вычисленных значений функций, попахивает лабами 5-го класса... "распечатаете значение функции y=2*x где x = 0,1 - 10"... Там же где используется статичный базис (простейшее crcXX, mdX) функции вычисления базисных констант математически сложны, требуют не дюжего количества кода и вычисления могут длится не то что часами, а даже неделями. Учитывая что компиляция и так не ракета, применение вычисляемых констант затормозит ее еще больше... Думаю найдутся таланты вычисляющие число Пи на этапе компиляции... -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
||||||||
|
|||||||||
k0rvin |
|
||||||||
Опытный Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Опечатка, правильно «не для».
Например?
Создает (например хеш)-таблицу символ первого алфавита -> символ второго алфавита (или две таблицы для обоих направлений) во время компиляции, для быстрого поиска. Алфавит известен, от рантайма не зависит, так почему бы не сделать это во время компиляции? Некоторые языки имеют литералы для хешь-таблиц, C++ — нет, и кроме хеш-таблиц есть и другие структуры данных, различных видов деревья, например, на каждую структуру литералов не напасешься. Не знаю, что за личности, но препроцессор Си туп как пробка. Конечно с его помощью реализованы объекты GObject в GTK, но, насколько я знаю, там такой ад и каша из макросов, что лучше б они этого не делали.
Если область определения известна на этапе компиляции, то почему бы не сделать функцию y константным выражением. Какая постановка задачи, такое и решение. =) Естественно в реальной жизни y должна быть обычной функцией, т.к. данные будут поступать в рантайме, но речь-то не об этом.
Это уже другой вопрос, таланты всегда были и будут. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
ТарасАтавин |
|
|||
Опытный Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Билдер делфям не предпочитают, билдер юзают дельфицы при необходимости работы в парах с крестанутыми и сионистами, в нем не осталось ни гибкости полноценных плюсов в плане разработки интерфейса, ни упрощённого-сокращённого паскального синтаксиса. Я тоже начинал с паскаля, а пишу на кодоблоках, так как они не навязывают мне vcl, а позволяют весь интерфей Билдер не предпочитают, его юзают пасквилянты при необходимости работы в парах с сионистами и крестанутыми. В нём нет ни упрощённо-сокращённого синтаксиса делфей, ни гибкости плюсов в плане разработки интерфейса. Я тоже начинал с паскаля, а пишу на c++ на кодоблоках, так как они не навязывают мне vcl, а позволяют интерфейс писать на том же языке. Гибко и достаточно произвольно. Можно хоть direct-x для кнопок заюзать их положить в 3D прямо на главное окно, не связываясь с панелями и не страдая тенями "рельефа" этих панелей по краям. Или ещё что нибудь не стандартное сделать. Можно даже вообще отказаться от окна и весь вывод отправить на рабочий стол, а под делфой это выльется в борьбу с vcl. -------------------- Не так всё плохо, как оно есть на самом деле. |
|||
|
||||
Exiousle |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.9.2013 Репутация: нет Всего: нет |
ВСЕМ нравится С++??? ВСЕМ???
Где это написано? Или я не все, или С++ любят НЕ все |
|||
|
||||
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |