
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (56) « Первая ... 5 6 [7] 8 9 ... 55 56 ( Перейти к последнему сообщению ) |
Сообщ.
#91
,
|
|
|
Цитата applegame @ А некоторые еще любят замутить такие вложенные замороченные макросы, что потом когда вылезает ошибка компиляции, приходится мучительно искать, где-же именно это говно вылезло. Ведь компилер бодренько показывает строку в которой макрос был задействован. Это к вопросу D_KEY, почему макросы говно. А потому, что препроцессор - тупой, а компилятор - умный. Поэтому замена препроцессора компилятором - отличная идея. Но упоротые "старики" будут гнуть свое, хотя практически все учебники по C++ говорят одно и тоже: макросы - зло. Макросы зло - когда ими злоупотребляют. Когда их используют вместо банальных констант, когда ими пытаются выражение на 5 строчек реализовать макросом в одну строчку, странно почему не функцией и т.д. А так то макросы сами по себе нормальные. Просто есть макрофанаты отдельные... |
Сообщ.
#92
,
|
|
|
Сами пишите на Brainfuck. А мелкие вспомогательные тулзины крутятся вокруг любого крупного проекта.
|
Сообщ.
#93
,
|
|
|
Цитата applegame @ А мелкие вспомогательные тулзины крутятся вокруг любого крупного проекта. Так они на каких-нибудь питонах, как правило. |
Сообщ.
#94
,
|
|
|
applegame, вот ты там писал гдето про GC и деструкторы, мол для структор что на стэке - обычные деструкторы, а в остальном GC. А как эта солянка вместе работает? Вот например что там в плане исключений? finally какие нибудь писать нужно? или как?
|
Сообщ.
#95
,
|
|
|
Цитата D_KEY @ Цитата applegame @ А мелкие вспомогательные тулзины крутятся вокруг любого крупного проекта. Так они на каких-нибудь питонах, как правило. +1 Есть куча языков, на которых можно сделать мелкие тулзы, и языки эти знает куча народу. Зачем мне D? |
Сообщ.
#96
,
|
|
|
Цитата Wound @ Да, но самое интересное, что главное преимущество препроцессора - это как раз городить костыли, которые нормальным способом не сделать. Например Boost.Foreach. В остальных случаях он не нужен при достаточной поддержке языка. В том же D, например. Макросы зло - когда ими злоупотребляют. Когда их используют вместо банальных констант, когда ими пытаются выражение на 5 строчек реализовать макросом в одну строчку, странно почему не функцией и т.д. А так то макросы сами по себе нормальные. Просто есть макрофанаты отдельные... |
Сообщ.
#97
,
|
|
|
Цитата D_KEY @ Я не знаю питона и изучать его нет никакого желания. Я использую D.Так они на каких-нибудь питонах, как правило. Цитата Wound @ Все нормально работает. finally - в D нет и он там не нужен. При выходе из scope деструктор для структуры вызовется автоматически, как и в плюсах. Но, если нужно, то можно мутить какие-то особые правила при выходе из scope:applegame, вот ты там писал гдето про GC и деструкторы, мол для структор что на стэке - обычные деструкторы, а в остальном GC. А как эта солянка вместе работает? Вот например что там в плане исключений? finally какие нибудь писать нужно? или как? ![]() ![]() void foo(void) { scope(exit) writeln("это выполнится при любом выходе из scope (в данном случае - функции)"); scope(success) writeln("это выполнится только при выходе без исключений"); scope(failure) writeln("это выполнится только при выходе по исключению"); try { ... } catch(Exception e) { ... } } |
Сообщ.
#98
,
|
|
|
Цитата applegame @ Я не знаю питона и изучать его нет никакого желания. Да его изучать и не приходится както, просто берешь и пишешь как тебе нравится и все )) |
Сообщ.
#99
,
|
|
|
Цитата applegame @ finally - в D нет Лолшто? Цитата TryStatement: try ScopeStatement Catches try ScopeStatement Catches FinallyStatement try ScopeStatement FinallyStatement Catches: LastCatch Catch Catch Catches LastCatch: catch NoScopeNonEmptyStatement Catch: catch ( CatchParameter ) NoScopeNonEmptyStatement CatchParameter: BasicType Identifier FinallyStatement: finally NoScopeNonEmptyStatement Цитата applegame @ и он там не нужен Ага, не нужен. Но в D нет общей идеи, это просто бессистемный набор фич. |
Сообщ.
#101
,
|
|
|
Цитата Wound @ Как нравится не получится. Я однажды писал маленький плагин для Blender. Нужно было импортировать/экспортировать модельки для игры. Так вот помучался немного. Написал в итоге, но язык не понравился. Да его изучать и не приходится както, просто берешь и пишешь как тебе нравится и все )) |
Сообщ.
#102
,
|
|
|
Цитата applegame @ При выходе из scope деструктор для структуры вызовется автоматически, как и в плюсах. Но, если нужно, то можно мутить какие-то особые правила при выходе из scope: ![]() ![]() void foo(void) { scope(exit) writeln("это выполнится при любом выходе из scope (в данном случае - функции)"); scope(success) writeln("это выполнится только при выходе без исключений"); scope(failure) writeln("это выполнится только при выходе по исключению"); try { ... } catch(Exception e) { ... } } Кстати, мне кажется, что D очень удобен для холиваров. Можно мимикрировать под разные языки. |
Сообщ.
#103
,
|
|
|
Цитата D_KEY @ Да, ты прав, есть. Я был уверен, что нет Есть ![]() |
Сообщ.
#104
,
|
|
|
Цитата applegame @ Цитата D_KEY @ Да, ты прав, есть. Я был уверен, что нет Есть ![]() Не нужен, но есть. Прямо как сам D. |
Сообщ.
#105
,
|
|
|
Цитата D_KEY @ Холивара не получается. Всем насрать хорош или плох C++, всем важно насколько плох D. Кстати, мне кажется, что D очень удобен для холиваров. Можно мимикрировать под разные языки. ![]() Я привел два примера в чем D однозначно переплюнул C++, но всем пофиг. ![]() |