![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
Что есть в сабже сильно и что есть слабого ?
Хотелось бы увидель , что думают по этому поводу программеры! PS ждемс обсуждения -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
сильно - шаблоны. где ещё такое есть?
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
запутанная система подключения заголовочных файлов
-------------------- ![]() |
|||
|
||||
mr666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 28.3.2006 Репутация: нет Всего: нет |
Распространенность.
![]() |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
The Problem with Programming
Bjarne Stroustrup, the inventor of the C++ programming language, defends his legacy and examines what's wrong with most software code. Tuesday, November 28, 2006 More Trouble with Programming The second part of our interview with Bjarne Stroustrup, the inventor of C++. Thursday, December 07, 2006 Там и комментариев много И вот тут комментируют |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
SergeCpp, я знаю , что ты силен в С++ , но я не просил ссылок , я просил обсуждение!
понятно эт ты к чему относишь? к сильной или слабой стороне? PS чет сишники молчат ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
Да нету у него слабостей, сила одна!
![]() -------------------- Account removed |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
В бытность мою С++ программером временами приходилось использовать сишные макросы, не хватало возможности делать вложенные макросы, т.е. подставлять одни макроопределения в #defin-ы других. Хотя, как я понимаю, грамотнее не использовать макросы вообще, но... (к примеру для кроссплатформенных приложений они часто где юзаются)
Добавлено @ 15:56 З.Ы, насчёт Комментарии будут ? Пример №1: есть 2 класса должны "знать" друг о друге, но объявлены в разных .h-файлах. Пример: указатель на Parent и массив Child-ов, классы разнородные (не наследники). Как правильно подключить один .h к другому без колдунства с прототипами ? ![]() Пример №2: один заголовочный файл используется в нескольких других. Чтобы избежать повторных объявлений всего что есть в этом файле, приходится колдовать с #if/#endif в начале и конце файла, ставить разные #pragma once и т.п. Добавлено @ 16:00 Ещё один минус, возможно что спорный: сложность при отладке. При использовании таких возможностей языка, как шаблоны, typedef-ы, макросы, переопределения операторов, найти баг становится сложнее (к рантаймовым багам добавляются неявные ошибки времени компиляции - неправильный вывод типа, подстановка и т.п.) -------------------- ![]() |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
А я еще в соседней теме говорил, что никакого неявного кода быть не должно. Кстати только у меня из несишников чуство, что сишники только тем и занимаются, что пишут шаблоны, собственные строковые классы и перегружают операторы? ![]() -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
И МЕНЕДЖЕРЫ ПАМЯТИ !!! ![]() ![]() ![]() ![]() -------------------- ![]() |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
Одни словом - занимаются настоящим программированием, в отличие от жабистов, дотнетчиков и драг-энд-дроп программистов ![]() -------------------- Account removed |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
mr.DUDA, см. 8.1 Modularization and Interfaces & 9 Source Files and Programs в Специальном Издании
Это сообщение отредактировал(а) SergeCpp - 5.2.2007, 16:43 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
имхо чушь, иначе был бы он идеален и его юзали бы все, а такого нет , юзают много чего, вывод, значит твоя фраза не есть истина, и мистер Дуда много чего привел! mr.DUDA, сиба , интересные мысли ![]() Кса чет не вижу реальных представлений силы? тем более шаблоны , и их использование понизилось в статусе силы.... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
сишники не могут делать этого по определению ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
почему? хоть один сишник забрел ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
Romikgy,
потому что Сники это не С++ниики ![]() Добавлено @ 17:49 а то такая тема, грех не зайти ![]() Добавлено @ 17:54 имхо, единственная проблема С++ - препроцессор делаем встроенный оператор include, расширяем шаблоны (чтобы не хотелось макросами пользоваться), стандартизуем тип файла, который можно включить оператором include (т. е если в нем есть кроме описаний - код - ошибка (кроме inline функций)), делаем template export и убираем препроцессор Это сообщение отредактировал(а) MAKCim - 5.2.2007, 17:48 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
mr.DUDA, во всём этом виноват не C++, а его препроцессор. В "Дизайн и эволюция C++" Бъярни писал, что когда-то предлагал сделать инклюд-конструкцию на уровне языка, естественно более продвинутую. По непонятным для меня причинам комитет это отверг (как будет в будущем - не знаю).
Далее - по сабжу написаны плюсы => говорим про плюсы. А в чём сила плюсов? В том, что плющит конкретно. ![]() Недостатков - много, не спорю. Плюсы разрабатывались не пойми как. Самое интересное, что всё таки популрность завоевали обалденную. Ещё чего! ![]() Добавлено @ 18:02 ![]() |
|||
|
||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Лично меня больше всего на коня подсадило в свое время невозможность отделения объявления от реализации для шаблонов.
Скорее бы это в стандарт! ![]() -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
все делаем в виде операторов Добавлено @ 18:05 это уже в стандарте только вот реализовать это сложно по-моему только 1 компилятор на сегодня способен на export -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Можно поподробней? Весь все равно путь даже синтаксически по другому, другой, но по сути препроцессор. Насчёт экспорта - да, он в стандарте. Реализует его вроде только Comeau ([offtop]кто-то вообще этот компилер вживую видел [/offtop]). После прочтения Саттера по этому поводу возникает мысль, что поспешили с введением экспорта. О его необходимости никто не спорти - но в другом виде. ТЕкущий экспорт - бесполезная вещь. Это сообщение отредактировал(а) Любитель - 5.2.2007, 18:21 |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
Так его только и юзают для разработки серьезного ПО. Тут можно в принципе даже не отделять С от С++, так как С код компилирутеся С++ компилятором и можно смешивать С и С++. Всё остальное - прикладное программрование на уровне VB. Кто привык использовать инклюды препроцессора никакого дискомфорта по их поводу не испытывает. Есть стандартные решения для корректного инклюда. Просто вы привыкли чтобы за вас всё делал визард или фреймворк, вот и боитесь лишний раз напречься ![]() Насчет шаблонов я вообще не понял о чём речь? Они то в С++ уже есть не первый десяток лет. А в Java и C# появились сравнительно недавно. И кто их понизил в статусе силы, не вы ли случайно? ![]() Вот когда добьетесь производительности от программы написанной на каком нибудь другом языке, отличном от С/С++ (ассемблер не предлагать), тогда я сниму перед вами шляпу. А так я готов терпеть все его "неудобства", зато они окупаются сторицей ![]() -------------------- Account removed |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Это клевета!!! Нет там шаблонов. Дженерики != шаблоны. Полное !=. ![]() ![]() |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
Любитель, хорошо - некое подобие шаблонов
![]() ![]() -------------------- Account removed |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Ага, если ещё добавить жалкое подобие - это нас устроит
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Fortran подойдет? ![]() -------------------- 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. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
LSD, только математика. Эффективное управление памятью - сомневаюсь. Но собсно говоря и плюсы не совсем дял того создавались. Есть Си - хороший по своему, но по идеолгоии далёкий от плюсов.
Добавлено @ 19:04 [offtop] млин что-то я совсем - очепятки горой идут ![]() [/offtop] Это сообщение отредактировал(а) Любитель - 5.2.2007, 19:04 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Есть не так много вещей кроме математики, способных загрузить процессор на 100%. И вообще какое это имеет отношение к тому, что я написал? -------------------- 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. |
|||
|
||||
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: нет Всего: 14 |
Есть бесконечное количество вещей кроме математики способных загрузить проц на 100% С точки зрения вычислимости C=C++ -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
да я думаю С = C++ = Pascal = Delphi = ... (на одной архитектуре) разница будет только в "хорошести" компиляторов -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Не нравятся указатели.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Однако возможности компилятора по оптимизации в некоторой мере зависят и от свойств языка. Пример: введение restrict в C99. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
Не очень прозрачные и не очевидные. Насколько мне известно, главная проблема плюсов это утечки памяти. Предвижу комментарии, типа утечки только у чайников, но помните, что профи не рождаются, а становятся благодаря большому опыту и знаниям, но все это не приходит вмиг! А живем мы раз и хочется (да и нужно) постоянно иметь результат работы, а не только потом, спустя годы. Вот только сегодня уперся - дебагер виснет на операции delete[] m_bufer, при этом просто виснет и ничего не сообщает. Даже код ошибки узнать нельзя, потому что после ничего не выполняется. Указатель с виду "хороший", запретных операций тоже, на глаз не видно, хотя точно есть, но где неочевидно. Сишники будут активно возмущаться, но я все скажу. ИМХО указатели это вообще прошлый век, и пора от них совсем отказываться, как от плохого стиля программирования, такого как GoTo и т.д. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Sartorius |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Это что значит? По performance что ли? Не думаю. Чем более формален язык - тем эффективние код. Поэтому в ряду ASM - FORTRAN - C - C++ - Pascal скорость кода убывает
Испльзуйте smart pointers.... Контроль за памятью - это не забота языка и к языку никакого отношения не имеет. Это уже библиотеки. База у С - достаточная. Компилятор должен обеспечивать только корректное обращение по указанному адресу. Это сообщение отредактировал(а) Sartorius - 5.2.2007, 21:11 |
||||
|
|||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
Sartorius,
любой язык описан формально
да ты что? все зависит от компилятора в большинстве случаев код плохого программиста на ассемблере будет хуже кода хорошего С-компилятора И вообще, что за понятие такое: скорость кода? Это сообщение отредактировал(а) MAKCim - 5.2.2007, 21:18 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Sartorius |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Ясное дело при прочих равных условиях ![]()
Да.. ерунду сказал. ... Чем ниже уровень языка - тем эффективнее код. ЗЫ Что за вычислимость такая? Можно говорить о вычислимости выражения и т.п. А код здесь причем? Это сообщение отредактировал(а) Sartorius - 5.2.2007, 21:25 |
||||
|
|||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
ну видно имелось в виду что-то типа этого
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: нет Всего: 14 |
По простому так.
И С и С++ эквивалентны машине тьюринга. А соответсвенно и эквиваленты один другому. Эквивалентны машине тьюринга, это значит они могут симулировать М.Т. И М.Т может симулировать их. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
1. я не хотел делить С и С++, имхо это практически одно и тоже (хотя различий хватает),
и в данном топике , я бы хотел увидеть обсуждения С++ 2. сравнивать языки друг с другом , конечно хорошо , но хотелось бы видет именно недостатки и достоинства С++ точнее можно? по подробнее плз чем можно узнать? да , конечно запутано , но это дело привычки имхо , и очепяток ![]() чет я не понял чем эта вещь хороша? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
||||
|
||||
nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||||
|
|||||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
![]() ![]() тоже интересно послушать ![]() кса и некто не говорит о сильных сторонах С++ ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
||||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Позволяет указать компилятору, что данный указатель… э-э… не подвержен aliasing, тем самым позволяя более агрессивные оптимизации. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
здесь не все настолько разумны! плз по буквенно и медленно , так что бы поняли все , включая чайников! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
если провести параллель - в Delphi так реализованы экземпляры - интерфейсы - вместо вызова конструктора вызывается getInstance(увеличивает счетчик ссылок на 1), деструктор тоже не вызывается, а вызывается специальный метод, который уменьшает количество ссылок на 1. при достижении счетчиком ссылок 0, интерфейс выбрасывается из памяти без привлечения программиста. такая же фишка - в паттерне "одиночка", только там всё через статические поля класса. А "умные указатели" реализуются на шаблонах С++. Я правильно понимаю тему гребли, товарищи С++-ники? |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
т.е.
это плюс этого языка по направлению оптимизации?! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Romikgy, скорее костыль, заплатка.
Я к тому, что язык влияет на возможности оптимизатора. Обладая большей информацией о коде (система типов и т.д.) компилятор вправе делать более смелые предположения, не рискуя нарушить семантику кода. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Romikgy, ты можешь отвлечься от понятий абсолютного добра и зла?
![]() Это плюс, потому что позволяет компилятору лучше оптимизировать код. Минус дизайну языка, что для этого вообще понадобилось специальное ключевое слово. И тем не менее, дизайн языка логично проистекает из условий того времени и т.д. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
<Стерто>
Модераторы, уберите плиз. Это сообщение отредактировал(а) Beltar - 5.2.2007, 23:48 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
гна, ясности хоцца хмммм как все запутано ... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 4 Всего: 232 |
Возвращаясь к теме инклюдов, отвечаю Sun: нет, "нас" не испортили визарды и фреймворки. Вопрос тут не в том, "как правильно нужно делать и почему", а в том "почему в С++ приходится подстраиваться под неудобный препроцессор"
![]() -------------------- ![]() |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
Он не неудобен - он прост. Не нравтяся инклюды - пиши код в одном текстовом файле. Не нравится препроцессор - не используй. Это всё вещи опциональные и вспомагательные. Можно в конце концов свой препроцессор написать, который будет соединять тексты так, как вам удобно. Зато вы хоть знате как всё устроено и как всё работает а некоторую сложность использования С++ я отношу также к его сильной стороне, потому что в среде С++ чайников несравнимо меньше чем среди других популярных языков. -------------------- Account removed |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
ну-ну ![]() теоретически да, а практически... в смысле? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 3 Всего: 48 |
В прямом. Берётся код программы компилируется в объектный код и линковщиком собирается в исполняемый бинарный код. Все можно посмотреть как оно работает в ассемблере, какие регистры заполняются, что по какому адресу лежит, какие API функции вызываются - красота одним словом. Никаких тебе чёрных ящиков с байткодом или дебрями рантайма. -------------------- Account removed |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
restrict "говорит" компилятору, что в данной области видимости, данные, на которые указывает restrict pointer, могут изменяться только через этот указатель в связи с этим возможны оптимизации с его (компилятора) стороны правда, вот сейчас ради интереса, решил "поиграться" с restrict и разницы между "с restrict" и "без restrict" не заметил вообще ![]() Это сообщение отредактировал(а) MAKCim - 6.2.2007, 13:00 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Это иллюзия ![]() ![]() -------------------- 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. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
Sun,
а, в этом смысле согласен -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
SergeCpp |
|
||||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Полный текст беседы со Страуструпом 1 декабря 2006 (PDF, 74 K) |
||||||
|
|||||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
||||
|
||||
Sartorius |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
![]()
Интересно это о разработчиках какой страны? (Ну не знаю, где сейчас Страуструп живет... ![]()
Ну не знаю ... не знаю Это сообщение отредактировал(а) Sartorius - 6.2.2007, 16:42 |
||||||
|
|||||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: нет Всего: 122 |
||||
|
||||
SergeCpp |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Преподавание информатики: потерянная дорога
Никлаус Вирт Приветствие на открытии Международной конференции по преподаванию информатики ITiCSE г. Аархус (Дания), 24 июня 2002 г.
|
||||
|
|||||
Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Какая разница какой знак приписать операции. В рапире вообще "->" для присвоения использовалось. ИМХО к любому более менее очевидному синтаксису достаточно легко привыкнуть. |
|||
|
||||
Любитель |
|
||||||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
По-моему очень многие компилеры, если и поддерживают рестрикт, то тем не менее просто его игнорируют. Также, как скажем инлайн. Лично я против неизкоуровневой оптимизации со стороны програмиста в высокоуровневых языках. Нефиг - пусть компилер сам старается ![]() Romikgy, недостатки в недоделанности на самом деле. Тот же языковой инклюд. Возможность нормального разделения объявления и реализации шаблонов (хотя, конечно, исходники, либо какой-то псевдокод все равно понадобится при компиляции). Спецификации исключений, так недружащие с шаблонами и вообще вызывающие много споров. Функциональная недоделанность стандартной библиотеки (по сравнению со многими другими языками). Отсутствие STL везде где только можно ![]() Уже было сказано, но потворюсь - не о тех плюсах думаете ![]() ![]()
Не математикой единой... |
||||||
|
|||||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
GCC полностью поддерживает C99, а значит restrict, кроме того была включена оптимизация... вообщем непонятно, каким образом можно оптимизировать случаи, когда применяется restrict ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Все сразу и ничего вместе. Кстати, а в C есть параметры по умолчанию? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
А вот именованных параметров (лично мне) не хватает и в C++, и в Delphi, и в Java, и в C#…
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
||||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
А что это? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
нету нету -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
Я имел ввиду С++ , а не просто С просто не обратил внимания на то что в том посте без плюсов PS многие здесь программируют на чистом си без плюсов? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Beltar
Помогает, когда у функции много параметров, а указать надо лишь часть. И читается в таком случае лучше. Это сообщение отредактировал(а) Void - 8.2.2007, 19:07 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Но в Delphi тоже можно:
function f(X:Integer;Y:Integer=1):Integer; И вызывать можно f(x) и f(x,y). В чем разница? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Попробую словами: при вызове функции опциональные (строго говоря, не только) аргументы можно указывать в произвольном порядке с помощью синтаксиса <имя параметра> = <значение>.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Теперь понятно.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
пример можно -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Про именованные аргументы Страуструп писал в D&E
Это было предложение Роланда Хартингера Причина отклонения: группа по расширениям единодушно решила, что предложение не даёт почти ничего нового, приведёт к несовместимости с существующим кодом и будет способствовать распространению неудачного стила программирования Там есть и альтернативы именованным аргументам, например, дополнительные типы для представления наиболее типичных вариантов Void, а ну марш покупать и читать D&E! ![]() ![]() Это сообщение отредактировал(а) SergeCpp - 8.2.2007, 20:59 |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Я Страуструпа уважаю (а вопросы обратной совместимости уважать себя просто заставляют
![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
||||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Насчёт именованных параметров - никогда не будет на уровне языка хотя бы потому, что мы имеем права (и некоторые так делают) в хейдере называть параметры по одному, а в сорсе - по другому. Скажем типично (хотя я не приветствую):
Естьboost::parameter. Не вглядывался в реализацию, но использование достаточно приятно, правда редко нужно. Насчёт рестрикта - ещё пару слов. Как таковой он должен применяться не к конкретному указателю, а к их парам. Если функция принимает два параметра, то здесь всё понятно (хотя нелогично к какому именно указателю ставить рестрикт). Но допустим, что у функции три параметра. Между двумя первыми гарантировано соблюдение рестрикта, а вот третий может "вклиниться" в любой из первых двух. Вполне возможно, что однако (теоретически) возможна оптимизация. Возможно, что третий указатель, нужен для просто задания элемента (не из массива). То есть существующий синтаксис рестрикта нелогично описывает ситуацию. Получается мы гарантируем отсутствие алиасов с любыми другими указателями - это возможно очень редко. Кстати, Пддержка не означает использование. Компилер вправе поддерживать его на уровне игнорирования (как это обычно бывает с инлайн). Если функция не экспортируется, то глобальная оптимизация зачастую позволяет выявить отсутствие алиасов (и заюзать оптимизацию) без подсказок с нашей стороны (кроме подсказки в опциях компилера ![]() |
|||
|
||||
Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 10 Всего: 50 |
Это сообщение отредактировал(а) Artemios - 9.2.2007, 11:30 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
какой-то странный уровень поддержки ![]() если что то игнорируется в GCC (например export), то warning соответствующий появляется -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Но ведь с инлайн именно так часто получается. Или register-переменные (которыми никто не пользуется
![]() |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Последняя stable версия Perl (5.8.8). Начало одной из функций файла util.c
Дата модификации файла: 9 января 2006 |
|||
|
||||
Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
Мнда. Многовато чего-то регистров. А ведь еще и результаты промежуточные где то хранить нада....
|
|||
|
||||
MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
всегда есть
и
для таких случаев Добавлено @ 21:48
так 2 регистра еще есть ![]() Это сообщение отредактировал(а) MAKCim - 9.2.2007, 21:48 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
MAKCim, я, конечно понимаю твои взгляды, но не надо всё же равнять gcc и стандартные плюсы
![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
нет, подожди В С++ по стандарту inline функция - есть подстановочная функция, а register переменные - переменные в регистрах т. е любой компилятор номинально обязан все inline функции подставлять непосредственно (благо ограничений в отличие от register переменных нет) и располагать register переменные в регистрах за исключением ситуации, когда отсутствуют свободные регистров, а заниматься оптимизацией должен при включенной оптимизации т. е я хочу сказать, что в обычном режиме он должен тупо следовать спецификации языка, а со включенной оптимизацией - заниматься эвристикой и прочим шаманством Это сообщение отредактировал(а) MAKCim - 9.2.2007, 23:14 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
MAKCim
7.1.2/2
Между предпочтением и обязательством есть разница. Добавлено @ 23:42 7.1.1/3
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Что бегло нашёл по restrict:
Добавлено @ 00:45 MAKCim, кстати выше я говорил про __atribute__ и __asm__. |
|||
|
||||
SergeCpp |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Вот выдержки из довольно старой статьи Денниса Ритчи (1988, noalias comments to X3J11)
Это сообщение отредактировал(а) SergeCpp - 10.2.2007, 01:12 |
||||
|
|||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 3 Всего: 124 |
Цикл статей Страуструпа о совместимости C и C++
Sibling rivalry: C and C++. AT&T Labs — Research Technical Report. January 2002 C and C++: Siblings. The C/C++ Users Journal. July 2002 C and C++: A Case for Compatibility. The C/C++ Users Journal. August 2002 C and C++: Case Studies in Compatibility. The C/C++ Users Journal. September 2002 Положение дел David R. Tribble. Incompatibilities Between ISO C and ISO C++ |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
но фактически ограничений на сегодня использоанию inline нет, и так как
то логично было бы в обычном (не оптимизирующем) режиме всегда использовать inline, если это явно указано тогда бы программист был уверен, как именно будет в итоге выглядеть код я понял -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
mr666 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 28.3.2006 Репутация: нет Всего: нет |
Вроде современные компиляторы игнорируют register переменные... анализируя код ..
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
MAKCim, ну всё же, если компилер будет просто игнорировать инлайн, формально он удовлетворяет стандарту. К тому же не всегда встраивание возможно. Например, имеем рекурсивную функцию (в тривиальный цикл не разворачиваемую - только с использованием стека). Компилер не сможет её заинлайнить. Да и в жебаге мне кажется любую рекурсивную функцию он встраивать не будет. Игнор инлайна гораздо проще, чем развёртывание рекурсии (даже в цикл).
То же имеем и с регистер, и с рестрикт. |
|||
|
||||
MAKCim |
|
||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
да как нефиг пусть есть
функция
inline
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||
|
|||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
![]() А вообще оффтопик почуть пошёл. |
|||
|
||||
unicuum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: 1 Всего: 8 |
Как утверждает создатель С++ Бьерн Страуструп в его третьем издании книги «Язык программирования С++» - «не важно на каком языке программируешь, важно что из себя представляешь ты сам». И я с ним полностью согласен.
-------------------- ![]() обычный день на винграде |
|||
|
||||
esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: нет Всего: 14 |
Это еще Тьюринг доказал. А Страуструп всего лишь процитировал в вольной форме. -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Для результата - почти да. Для процесса - ни в коем случае
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |